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

时间:2016-06-16 06:14:09

标签: 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进行布尔搜索,找到具有两个特定属性之一(或两个属性)的所有标记,或者我是否必须单独搜索每个属性?

1 个答案:

答案 0 :(得分:2)

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

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