Как сделать ссылки в панде датафрейма кликабельными? - PullRequest
0 голосов
/ 21 марта 2019

В настоящее время я использую Beautifulsoup для очистки таблицы на сайте, эта таблица содержит ссылки, затем я преобразовываю эту таблицу в фрейм данных pandas и преобразовываю ее в html, используя параметр pandas 'to_html', все это работает в Django.

Вот как я создаю таблицу в Python:

res = []
                for row in table.find_all('tr'):
                    row_data = []
                    for td in row.find_all('td'):
                        td_check = td.find('a')
                        if td_check is not None:
                            link = td.find('a')
                            row_data.append(link)
                        else:
                            not_link = ''.join(td.stripped_strings)
                            if not_link == '':
                                not_link = None
                            row_data.append(not_link)
                    res.append(row_data)

Затем я преобразовываю ее в HTML, используя:

sangerDF = sangerDF.to_html(classes=["table-bordered", "table-striped", "table-hover",], index=False, justify="initial")

Но она выводиттаблица на моем сайте примерно такая:

Table

Я не понимаю, почему на нее нельзя нажимать?Если я проверяю ячейку в таблице с помощью своего браузера, HTML-код выглядит следующим образом:

<td>
   &lt;a href="https://www.sanger.ac.uk/htgt/wge/crispr/1006029202"&gt;1006029202&lt;/a&gt;
</td>

Итак, что-то не так с форматированием, как бы это исправить?

Спасибо!

1 Ответ

0 голосов
/ 21 марта 2019

Я понял, к моему «to_html» я должен был добавить «escape = False» в скобках в конце.

, поэтому мой код до:

sangerDF = sangerDF.to_html(classes=["table-bordered", "table-striped", "table-hover",], index=False, justify="initial")

и после:

sangerDF = sangerDF.to_html(classes=["table-bordered", "table-striped", "table-hover",], index=False, justify="initial", escape=False)

Надеюсь, это поможет.

...