Heim >Backend-Entwicklung >Python-Tutorial >Warum wirft My Beautiful Soup Code einen AttributeError aus: Das Objekt „ResultSet' hat kein Attribut „find_all'?

Warum wirft My Beautiful Soup Code einen AttributeError aus: Das Objekt „ResultSet' hat kein Attribut „find_all'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-26 14:01:13637Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn