Beautiful Soup: AttributeError when Accessing 'find_all' Attribute on 'ResultSet' Object
Beim Web Scraping mit Beautiful Soup ist es wichtig zu verstehen die Objekttypen, mit denen Sie arbeiten. Stellen Sie bei der Verwendung von BeautifulSoup.find_all() sicher, dass Sie es auf das richtige Objekt anwenden.
Beachten Sie den Codeausschnitt unten:
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')
In diesem Code ist die Tabelle ein ResultSet-Objekt. ResultSet ist ein listenartiges Objekt, das mehrere Tag-Objekte enthält. Um Elemente in jedem Tag-Objekt zu finden, müssen Sie die Elemente im ResultSet durchlaufen und find_all() für jedes Tag-Objekt aufrufen.
Der korrigierte Code unten zeigt dies:
... for row in table[0].find_all('tr'): col = row.find_all('td') ...
Zusammenfassend lässt sich sagen: Wenn Sie auf den AttributeError stoßen: Das Objekt „ResultSet“ hat kein Attribut „find_all“, stellen Sie sicher, dass Sie find_all() für den entsprechenden Objekttyp aufrufen. Denken Sie in diesem Fall daran, über das ResultSet zu iterieren und find_all() für jedes Tag-Objekt auszuführen.
Das obige ist der detaillierte Inhalt vonWarum wirft My Beautiful Soup Code einen AttributeError aus: Das Objekt „ResultSet' hat kein Attribut „find_all'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!