Maison >développement back-end >Tutoriel Python >Pourquoi les fonctions BeautifulSoup comme « find » et « select_one » renvoient-elles « None » ?

Pourquoi les fonctions BeautifulSoup comme « find » et « select_one » renvoient-elles « None » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-13 02:14:021041parcourir

Why do BeautifulSoup functions like `find` and `select_one` return `None`?

Pourquoi les fonctions BeautifulSoup renvoient parfois Aucun

Dans BeautifulSoup, les fonctions qui recherchent un seul résultat, telles que find et select_one, renvoient Aucun si aucun élément correspondant n'est trouvé dans le HTML. Cela conduit à des exceptions AttributeError si le code suivant tente d'utiliser ces valeurs None comme s'il s'agissait d'éléments réels.

Exemples de retours None

Considérez l'extrait de code suivant :

html_doc = "..."
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.sister)
print(soup.find('a', class_='brother'))
print(soup.select_one('a.brother'))
soup.select_one('a.brother').text

Comment éviter AttributeError : 'NoneType ' L'objet n'a pas d'attribut...

Pour éviter les exceptions AttributeError, il est essentiel de gérer les retours None avec élégance. Voici quelques bonnes pratiques :

  • Utilisez des instructions conditionnelles pour vérifier si le résultat est Aucun avant de tenter d'accéder aux attributs.
  • Attribuez le résultat à une variable et utilisez .has_attr() pour vérifier l'existence d'un attribut spécifique.
  • Utilisez les blocs try et except pour intercepter les exceptions AttributeError.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn