Maison >développement back-end >Tutoriel Python >Pourquoi est-ce que je n'obtiens aucun résultat des fonctions .find et .select_one de BeautifulSoup ?
Lorsque vous utilisez BeautifulSoup pour analyser du HTML, il n'est pas rare de rencontrer Aucun résultat de fonctions telles que .find et .select_one. Ces fonctions renvoient Aucun lorsqu'aucun élément correspondant n'est trouvé dans le document HTML. Par la suite, toute tentative d'accès aux attributs ou d'exécution d'opérations sur la valeur None génère une AttributeError car None ne dispose pas des attributs attendus.
BeautifulSoup propose deux types de requêtes :
Pour éviter les exceptions AttributeError lors de l'utilisation de requêtes à résultat unique, vérifiez si le résultat est Aucun avant de tenter d'accéder à ses attributs. Cela peut être fait avec une instruction if ou en utilisant le modèle try/sauf.
Par exemple, pour accéder en toute sécurité au texte de la première balise 'a' avec la classe 'sister', utilisez :
try: first_sister_link = soup.find('a', class_='sister') if first_sister_link: print(first_sister_link.text) except AttributeError: print("No 'a' tag with class 'sister' found")
La gestion des requêtes à résultat unique dans BeautifulSoup nécessite de vérifier si le résultat est None pour éviter les erreurs NoneType. En employant des protections appropriées, les développeurs peuvent gérer avec élégance l'absence d'éléments correspondants et poursuivre leurs opérations d'analyse sans interruption exceptionnelle.
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!