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\' ?
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!