Heim > Backend-Entwicklung > Python-Tutorial > Warum löst BeautifulSoup beim Abrufen von Elementen nach Klasse einen KeyError aus und wie kann ich das beheben?

Warum löst BeautifulSoup beim Abrufen von Elementen nach Klasse einen KeyError aus und wie kann ich das beheben?

Linda Hamilton
Freigeben: 2024-12-02 05:51:14
Original
606 Leute haben es durchsucht

Why Does BeautifulSoup Throw a KeyError When Retrieving Elements by Class and How Can I Fix It?

Fehlerbehandlung: Elemente nach Klasse mit BeautifulSoup abrufen

Beim Parsen von HTML-Elementen mit dem „class“-Attribut mit Beautifulsoup kann ein Fehler auftreten . Dieser Fehler tritt auf, wenn versucht wird, das „class“-Attribut mithilfe der [„class“]-Syntax abzurufen. Der folgende Code zeigt dies beispielsweise:

import BeautifulSoup
sdata = '...'
soup = BeautifulSoup(sdata)
mydivs = soup.findAll('div')
for div in mydivs:
    if (div["class"] == "stylelistrow"):
        print div
Nach dem Login kopieren

Bei der Ausführung wird das Skript möglicherweise mit einem Fehler ähnlich dem folgenden beendet:

File "./beautifulcoding.py", line 130, in getlanguage
  if (div["class"] == "stylelistrow"):
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 599, in __getitem__
   return self._getAttrMap()[key]
KeyError: 'class'
Nach dem Login kopieren

Lösung: Verwendung von find_all

Um diesen Fehler zu beheben, kann der Code geändert werden, um die find_all-Methode von BeautifulSoup zu verwenden, um die Suche nach Elementen mit einer bestimmten Klasse zu verfeinern. Das folgende überarbeitete Code-Snippet demonstriert dies:

mydivs = soup.find_all("div", {"class": "stylelistrow"})
Nach dem Login kopieren

Durch die Verwendung der Methode find_all und die Angabe eines Wörterbuchs, das das Attribut „class“ als Schlüssel und den gewünschten Klassenwert als Wert enthält, kann das Skript die Elemente genau abrufen die angegebene Klasse. Diese Lösung behebt den Fehler effektiv und ermöglicht das Abrufen von Elementen mit einem gewünschten Klassenattribut.

Das obige ist der detaillierte Inhalt vonWarum löst BeautifulSoup beim Abrufen von Elementen nach Klasse einen KeyError aus und wie kann ich das beheben?. 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