AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
Dieser Fehler tritt auf, wenn Sie versuchen, eine Methode von einem Objekt aufzurufen, das None ist oder nicht initiiert wurde. Bevor Sie eine Methode aufrufen, müssen Sie überprüfen, ob das Objekt None
ist oder nicht, um diesen Fehler zu beheben; Rufen Sie danach die gewünschte Methode auf.
AttributeError
ist eine Ausnahme, die Sie erhalten, während Sie das Attribut aufrufen, aber sie wird nicht unterstützt oder ist in der Klassendefinition nicht vorhanden.
Ursachen und Lösungen des AttributeError: 'NoneType' object has no attribute 'text'
in Python
Dieser Fehler tritt häufig auf, wenn Sie Web-Scraping oder XML-Parsing durchführen. Während des Parsens erhalten Sie diesen Fehler, wenn Sie unstrukturierte Daten erhalten.
Hier sind einige weitere Gründe:
- Daten, die JavaScript dynamisch gerendert hat.
- Scraping mehrerer Seiten mit denselben Daten.
- Beim Analysieren von XML, wenn der gesuchte Knoten nicht vorhanden ist.
Hier sind die allgemeinen Lösungen, die Sie versuchen können, um den Fehler zu beseitigen:
- Prüfen Sie, ob das Element existiert, bevor Sie irgendein Attribut davon aufrufen.
- Überprüfen Sie die Antwort auf die Anfrage.
ein Beispielcode
Da dieser Fehler häufig durch Web Scraping verursacht wird, sehen wir uns ein Beispiel für Web Scraping an. Wir werden versuchen, den Titel der StackOverflow-Website mit unserem Python-Skript zu erhalten.
Hier ist der Code:
from bs4 import BeautifulSoup as bs
import requests
url = "https://www.stackoverflow.com/"
html_content = requests.get(url).text
soup = bs(html_content, "html.parser")
if soup.find("title").text is not None:
print(soup.find("title").text)
Ausgang:
Stack Overflow - Where Developers Learn, Share, & Build Careers
Hier werden Sie feststellen, dass die von uns verwendete if
-Bedingung is not None
ist, um sicherzustellen, dass wir eine vorhandene Methode aufrufen. Jetzt werden keine Fehler wie AttributeError
angezeigt.
Verwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung