python - 选择具有 bs4 的一个或多个特定属性的 HTML 标签

标签 python html beautifulsoup attr

我想使用 soup.find_all 来查找所有具有 idname 属性的 HTML 标记。

以下代码适用于 id 属性:

for tag in soup.find_all(attrs={"id": True}):

但是,以下具有两个属性的代码则不然:

for tag in soup.find_all(attrs={"id":True, "name":True}):

是否可以使用 bs4 进行 bool 搜索来查找具有两个特定属性之一(或两个属性)的所有标签,还是我必须单独搜索每个属性?

最佳答案

soup.find_all(lambda element: 'name' in element.attrs or 'id' in element.attrs)

我们使用lambda来访问find_all内的元素。然后,我们使用in运算符检查element.attrs(它是一个字典)是否有键name id

关于python - 选择具有 bs4 的一个或多个特定属性的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37851225/

相关文章:

php - 文件版本控制以消除浏览器缓存问题

python - BeautifulSoup 获取其中的链接和信息

python - 在 Python 中调整大图像的大小(大于可用 RAM)

python - 如何在 Google Colab 的 TPU 上训练 Keras 模型?我需要更改我的模型配置吗?(tinyYolo-v3)

python pandas 在组内排序并应用函数

javascript - 如何解析单击按钮后显示附加文本但该文本不在基本 html 中的网站中的文本

javascript - 如何使背景图像位置在所有分辨率下保持相同?

python - BS4 Replace_with 用于替换新标签

python - 在 python 中向 csv 数据添加新行

python - keras模型编译后出现 "None"是什么意思?