BeautifulSoup: AttributeError: l'objet 'NavigableString' n'a pas d'attribut 'nom'
Savez-vous pourquoi le premier exemple de BeautifulSoup tutoriel http://www.crummy.com/software/BeautifulSoup/documentation.html#QuickStart donne AttributeError: 'NavigableString' object has no attribute 'name'
? Selon cette réponse les caractères d'espace dans le code HTML sont les causes du problème. J'ai essayé avec des sources de quelques pages et 1 travaillé les autres ont le même message d'erreur (j'ai enlevé les espaces). Pouvez-vous expliquer ce que signifie "nom" consulter et pourquoi cette erreur se produit? Merci.
source d'informationauteur Zeynel
Vous devez vous connecter pour publier un commentaire.
name
le nom de la balise si l'objet est unTag
objet (ie:<html>
name = "html")si vous avez de la place dans votre balisage entre les nœuds BeautifulSoup va les transformer en
NavigableString
'. Donc, si vous utilisez l'index de l'contents
pour saisir les nœuds, vous pourriez saisir unNavigableString
au lieu de la prochaineTag
.Pour éviter cela, une requête pour le nœud que vous recherchez: La recherche de l'Arbre d'analyse
ou si vous connaissez le nom de la balise suivante vous le souhaitez, vous pouvez utiliser ce nom comme le bien et qu'il sera de retour la première
Tag
avec ce nom ouNone
si pas d'enfants avec ce nom existe pas: À l'aide de Noms de Balise en tant que MembresSi vous voulez utiliser le
contents
vous devez vérifier les objets que vous travaillez avec. L'erreur que vous obtenez signifie simplement que vous essayez d'accéder à la propriété de nom parce que le code suppose que c'est unTag
Vous pouvez utiliser try catch pour éliminer les cas où Navigables de Chaîne est analysée dans la boucle, comme ceci:
Simplement ignorer
NavigableString
objets tout en parcourant l'arbre: