BeautifulSoup findAll() 给出了多个类?

新手上路,请多包涵

我想从网站上抓取一个项目列表,并保留它们的显示顺序。这些项目被组织在一个表中,但它们可以是两个不同类中的一个(按随机顺序)。

有没有办法提供多个类并让 BeautifulSoup4 找到任何给定类中的所有项目?

除了保留源代码中项目的顺序外,我需要实现这段代码的作用:

 items = soup.findAll(True,{'class':'class1'})
items += soup.findAll(True,{'class':'class2'})

原文由 sebo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 581
1 个回答

你可以这样做

soup.findAll(True, {'class':['class1', 'class2']})

例子:

 >>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<html><body><div class="class1"></div><div class="class2"></div><div class="class3"></div></body></html>')
>>> soup.findAll(True, {"class":["class1", "class2"]})
[<div class="class1"></div>, <div class="class2"></div>]

原文由 Roman Pekar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题