Как разделить тдс и получить ндд тд в BeautifulSoup? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь научиться просматривать веб-страницы прямо сейчас, и я столкнулся с проблемой очистки этих данных:

<td align="left"><a href="/wiki/bob" title="bob">bob</a></td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>

Я хочу пропустить первый td align = "left", потому что он не есть заголовок, и я хочу поместить заголовки из тех, которые имеют их с 3-м тд в списке кортежей (например, [(bob, 3) ... (name, value)]).

Я видел ответы на получение n-й строки с использованием soup.findAll () и среза, но как мне получить конкретные c tds? Все предложения будут полезны и помогут мне в дальнейшей работе. Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2020

Это то же самое, что find_all tr, вы просто сделали бы find_all('td'). Find_all возвращает список, и вы хотите, чтобы 1-й и 4-й элементы:

from bs4 import BeautifulSoup

html = '''<td align="left"><a href="/wiki/bob" title="bob">bob</a></td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>'''

soup = BeautifulSoup(html, 'html.parser')

thirdTD = (soup.find_all('td')[0].text, soup.find_all('td')[3].text)

Вывод:

print (thirdTD)
('bob', '3')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...