Maison >développement back-end >Tutoriel Python >Pourquoi My Beautiful Soup Code renvoie-t-il une erreur AttributeError : l'objet \'ResultSet\' n'a pas d'attribut \'find_all\' ?

Pourquoi My Beautiful Soup Code renvoie-t-il une erreur AttributeError : l'objet \'ResultSet\' n'a pas d'attribut \'find_all\' ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-26 14:01:13581parcourir

Why Does My Beautiful Soup Code Throw an AttributeError: 'ResultSet' object has no attribute 'find_all'?

Beautiful Soup : AttributeError lors de l'accès à l'attribut 'find_all' sur l'objet 'ResultSet'

Dans le web scraping avec Beautiful Soup, il est essentiel de comprendre les types d'objets avec lesquels vous travaillez. Lorsque vous utilisez BeautifulSoup.find_all(), assurez-vous de l'appliquer au bon objet.

Considérez l'extrait de code ci-dessous :

import requests
from bs4 import BeautifulSoup

url = 'https://gist.githubusercontent.com/anonymous/c8eedd8bf41098a8940b/raw/c7e01a76d753f6e8700b54821e26ee5dde3199ab/gistfile1.txt'
r = requests.get(url)

soup = BeautifulSoup(r.text)
table = soup.find_all(class_='dataframe')

Dans ce code, la table est un objet ResultSet. ResultSet est un objet de type liste qui contient plusieurs objets Tag. Pour rechercher des éléments dans chaque objet Tag, vous devez parcourir les éléments du ResultSet et appeler find_all() sur chaque objet Tag.

Le code corrigé ci-dessous démontre ceci :

...
for row in table[0].find_all('tr'):
    col = row.find_all('td')
...

En résumé, lorsque vous rencontrez l'attribut AttributeError : l'objet 'ResultSet' n'a pas d'attribut 'find_all', vérifiez que vous appelez find_all() sur l'objet approprié. taper. Dans ce cas, n'oubliez pas de parcourir le ResultSet et d'exécuter find_all() sur chaque objet Tag.

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