Heim >Backend-Entwicklung >Python-Tutorial >Warum geben BeautifulSoup-Funktionen wie „find' und „select_one' „None' zurück?

Warum geben BeautifulSoup-Funktionen wie „find' und „select_one' „None' zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-11-13 02:14:021156Durchsuche

Why do BeautifulSoup functions like `find` and `select_one` return `None`?

Warum BeautifulSoup-Funktionen manchmal None zurückgeben

In BeautifulSoup geben Funktionen, die nach einem einzelnen Ergebnis suchen, wie find und select_one, None zurück, wenn kein passendes Element gefunden wird das HTML. Dies führt zu AttributeError-Ausnahmen, wenn nachfolgender Code versucht, diese None-Werte so zu verwenden, als wären sie tatsächliche Elemente.

Beispiele für None-Rückgaben

Bedenken Sie den folgenden Codeausschnitt:

html_doc = "..."
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.sister)
print(soup.find('a', class_='brother'))
print(soup.select_one('a.brother'))
soup.select_one('a.brother').text

So vermeiden Sie AttributeError: 'NoneType ' Objekt hat kein Attribut...

Um AttributeError-Ausnahmen zu vermeiden, ist es wichtig, None-Returns ordnungsgemäß zu behandeln. Hier sind einige Best Practices:

  • Verwenden Sie bedingte Anweisungen, um zu prüfen, ob das Ergebnis None ist, bevor Sie versuchen, auf Attribute zuzugreifen.
  • Weisen Sie das Ergebnis einer Variablen zu und verwenden Sie .has_attr() dazu Überprüfen Sie, ob ein bestimmtes Attribut vorhanden ist.
  • Verwenden Sie Try- und Except-Blöcke, um AttributeError-Ausnahmen abzufangen.

Das obige ist der detaillierte Inhalt vonWarum geben BeautifulSoup-Funktionen wie „find' und „select_one' „None' zurück?. 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