Heim > Backend-Entwicklung > Python-Tutorial > Wie vermeide ich „TypeError: Listenindizes müssen Ganzzahlen sein, nicht str' beim Extrahieren von Attributwerten mit BeautifulSoup?

Wie vermeide ich „TypeError: Listenindizes müssen Ganzzahlen sein, nicht str' beim Extrahieren von Attributwerten mit BeautifulSoup?

Patricia Arquette
Freigeben: 2024-12-02 20:13:11
Original
841 Leute haben es durchsucht

How to Avoid

Extrahieren eines Attributwerts mit BeautifulSoup

Beim Versuch, den Wert eines bestimmten „Wert“-Attributs innerhalb eines „Eingabe“-Tags mit zu extrahieren BeautifulSoup kann die Fehlermeldung „TypeError: Listenindizes müssen Ganzzahlen sein, nicht str“ auftreten. Das Problem rührt von einem Missverständnis darüber her, wie die Methode .find_all() von BeautifulSoup funktioniert.

Verstehen von .find_all()

.find_all() sucht nach allen Vorkommen eines Tags die den angegebenen Attributen entsprechen und eine Liste von Elementen zurückgibt. Dies bedeutet, dass beim Extrahieren des Attributs eines Eingabe-Tags mit einem bestimmten Namen die Operation ein Element zurückgibt, das Mitglied dieser Liste ist, und nicht den Attributwert selbst.

Korrektur des Codes

Um den Fehler zu beheben, gibt es zwei Ansätze:

  1. Indizierung verwenden: Greifen Sie mithilfe der Indizierung auf das Element in der Liste zu, wobei das erste Element durch input_tag[0] dargestellt wird. Greifen Sie dann auf das Attribut „Wert“ dieses Elements zu, zum Beispiel:
input_tag = soup.find_all(attrs={"name": "stainfo"})
output = input_tag[0]['value']
Nach dem Login kopieren
  1. Verwenden Sie .find(): Verwenden Sie anstelle von .find_all() die Methode .find(). wodurch nur das erste passende Element zurückgegeben wird:
input_tag = soup.find(attrs={"name": "stainfo"})
output = input_tag['value']
Nach dem Login kopieren

Durch die Implementierung einer dieser Änderungen extrahiert der Code ordnungsgemäß den gewünschten Attributwert die „TypeError“-Ausnahme.

Das obige ist der detaillierte Inhalt vonWie vermeide ich „TypeError: Listenindizes müssen Ganzzahlen sein, nicht str' beim Extrahieren von Attributwerten mit BeautifulSoup?. 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