J'essaie d'obtenir une liste des identifiants div d'une page. Lorsque j'imprime les attributs, j'obtiens les identifiants répertoriés.
for tag in soup.find_all(class_="bookmark blurb group") :
print(tag.attrs)
résulte en:
{'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']}
Je sais donc qu'il y a des identifiants. Cependant, lorsque j'imprime tag.id à la place, j'obtiens simplement une liste de "Aucun". Qu'est-ce que je fais mal ici?
Vous pouvez accéder aux attributs de la balise en la traitant comme un dictionnaire ( documentation ):
for tag in soup.find_all(class_="bookmark blurb group") :
print tag.get('id')
La raison pour laquelle tag.id
N'a pas fonctionné est qu'elle est équivalente à tag.find('id')
, ce qui donne None
car aucune balise id
n'a été trouvée (- documentation ).