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
Freigeben: 2024-11-13 02:14:02
Original
1115 Leute haben es durchsucht

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage