Python bs4 - find_all несколько тегов и классов - PullRequest
1 голос
/ 20 января 2020

Я кое-что почистил и столкнулся с проблемой.

Прямо сейчас мой код выглядит так:

pn = soup.find_all("a", {"class": "full"})
pfp = soup.find_all("td", {"class": "fp active"})

В приведенном выше примере я перебираю страницу дважды. Можно ли выполнить find_all для обоих тегов / классов, чтобы я мог точно проверять данные?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 января 2020

Если у вас BS4 4.7.1 или выше, вы можете использовать css селектор.

soup.select('a.full,td.fp.active')

ИЛИ

soup.select('.full,.fp.active')
1 голос
/ 20 января 2020

Если вы передадите список, Beautiful Soup разрешит совпадение строк с любым элементом в этом списке:

soup.find_all(["a", "td"], {"class": ["full", "fp active"]})

Документы: https://www.crummy.com/software/BeautifulSoup/bs4/doc/#a -list

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