Как Вы получаете все строки от конкретного использования таблицы BeautifulSoup?

Я изучаю Python и BeautifulSoup, чтобы очистить данные из сети и прочитать HTML-таблицу. Я могу читать, это в Открывает Office, и это говорит, что это - Таблица № 11.

Кажется, что BeautifulSoup является предпочтительным вариантом, но кто-либо может сказать мне, как захватить конкретную таблицу и все строки? Я посмотрел на документацию модуля, но не могу получить мою голову вокруг этого. Многие примеры, которые я нашел онлайн, кажется, делают больше, чем мне нужно.

18
задан Bigood 29 November 2013 в 14:00
поделиться

1 ответ

Это должно быть довольно прямолинейно, если у вас есть кусок HTML для разбора с BeautifulSoup. Общая идея состоит в том, чтобы перейти к вашей таблице, используя метод findChildren, затем вы можете получить текстовое значение внутри ячейки со свойством string.

>>> from BeautifulSoup import BeautifulSoup
>>> 
>>> html = """
... <html>
... <body>
...     <table>
...         <th><td>column 1</td><td>column 2</td></th>
...         <tr><td>value 1</td><td>value 2</td></tr>
...     </table>
... </body>
... </html>
... """
>>>
>>> soup = BeautifulSoup(html)
>>> tables = soup.findChildren('table')
>>>
>>> # This will get the first (and only) table. Your page may have more.
>>> my_table = tables[0]
>>>
>>> # You can find children with multiple tags by passing a list of strings
>>> rows = my_table.findChildren(['th', 'tr'])
>>>
>>> for row in rows:
...     cells = row.findChildren('td')
...     for cell in cells:
...         value = cell.string
...         print "The value in this cell is %s" % value
... 
The value in this cell is column 1
The value in this cell is column 2
The value in this cell is value 1
The value in this cell is value 2
>>> 
37
ответ дан 30 November 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: