bs4

2016-06-16 5 views
0

で1つ以上の特定の属性を持つHTMLタグを選択idまたはnameの属性を持つすべてのHTMLタグを検索するには、soup.find_allを使用します。bs4

次のコードは、id属性のために動作します。しかし

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

、二つの属性を持つ次のコードはしていません:

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

それはBS4とブール検索を行うことが可能であること2つの特定の属性(または両方の属性)のいずれかを持つすべてのタグを見つけるか、各属性を個別に検索する必要がありますか?私たちは、find_all内の要素にアクセスするためにlambdaを使用

答えて

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

。次にin演算子を使用して、nameまたはidのキーを持っているかどうかを確認します()。

+0

ありがとうございます!あなたのソリューションは素晴らしかったです! –