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:
input_tag = soup.find_all(attrs={"name": "stainfo"}) output = input_tag[0]['value']
input_tag = soup.find(attrs={"name": "stainfo"}) output = input_tag['value']
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!