python - 我想使用 beautifulsoup 搜索具有指定类的 div 和 <a>

标签 python beautifulsoup html-parsing

大家好,我正在尝试使用 Beautifulsoup findall 来获取 <div class="div1"> content </div><a class="a1"> link </a>立刻。
我只是倾向于 beautifulsoup 我知道这个方法如何链接在 soup.find_all("div",{ "class" : "div1" }):但如何获取具有特定类别的两个不同标签。

我可以做类似的事情

for link in soup.find_all("div",{ "class" : "div1" } and "a",{"class" : "a1"}):

示例 Html

 <div class="div1"> content </div>
 <div class="div2"> content </div>
 <div class="div3"> content </div>

 <a class="a1"> link </a>
 <a class="a2"> link </a>
 <a class="a2"> link </a>

我搜索了很多,但没有找到类似的东西 谢谢

最佳答案

您可以提供 list要搜索的类:

soup.find_all(class_=["div1", "a1"])

而且,您还可以传递要查找的标签列表:

soup.find_all(["a", "div"], class_=["div1", "a1"])

演示:

>>> from bs4 import BeautifulSoup
>>> 
>>> data = """
... <div>
...     <div class="div1"> content1 </div>
...     <div class="div2"> content2 </div>
...     <div class="div3"> content3 </div>
... 
...     <a class="a1"> link1 </a>
...     <a class="a2"> link2 </a>
...     <a class="a2"> link3 </a>
... </div>
... """
>>> 
>>> soup = BeautifulSoup(data)
>>> soup.find_all(class_=["div1", "a1"])
[<div class="div1"> content1 </div>, <a class="a1"> link1 </a>]
>>>
>>> soup.find_all(["a", "div"], class_=["div1", "a1"])
[<div class="div1"> content1 </div>, <a class="a1"> link1 </a>]

关于python - 我想使用 beautifulsoup 搜索具有指定类的 div 和 <a>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942224/

相关文章:

python - 将列表的列表拆分为每个列表的第一个元素的列表的命令

python - PyQt - 使用 QListWidget 自定义滚动

java - 从网站提取数据时出现异常

python - 如何从 BeautifulSoup 下载图片?

python - 解析 Quora 中包含代码的答案

python - 在 Python 中使用 BeautifulSoup 获取直接父标签

python - 使用 Python/Cython 编写二进制文件的更快方法

python - 直到语句/循环 python?

Python - 解决空页面中 Beautifulsoup 的 "object has no attribute"错误

python - 有没有办法在 python 中抓取没有 Selenium 的 JavaScript 页面