2016-06-16 46 views
0

我想使用soup.find_all来查找所有具有idname属性的HTML标记。使用bs4选择具有一个或多个特定属性的HTML标记

下面的代码工作id属性:

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

然而,有两个属性,下面的代码不会:

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

是否有可能做BS4布尔检索该会找到所有具有两个特定属性(或两个属性)之一的标签,或者我将不得不分别搜索每个属性?

回答

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

我们使用lambda访问内部find_all的元素。然后,我们使用in运算符来检查element.attrs(这是一本字典)是否有密钥nameid

+0

谢谢!您的解决方案非常棒! –

相关问题