ページからdiv idのリストを取得しようとしています。属性を出力すると、IDがリストされます。
for tag in soup.find_all(class_="bookmark blurb group") :
print(tag.attrs)
結果は:
{'id': 'bookmark_8199633', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']}
{'id': 'bookmark_7744613', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']}
{'id': 'bookmark_7338591', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']}
{'id': 'bookmark_7338535', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']}
{'id': 'bookmark_4530078', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']}
だから私はIDがあることを知っています。しかし、代わりにtag.idを出力すると、「None」のリストが表示されます。ここで何が悪いのですか?
タグを辞書のように扱うことでタグの属性にアクセスできます( documentation ):
_for tag in soup.find_all(class_="bookmark blurb group") :
print tag.get('id')
_
_tag.id
_が機能しなかった理由は、None
タグが見つからないためにid
となるtag.find('id')
と同等であるためです( ドキュメント )。