Ich benutze BS um eine HTML-Seite zu scrapen (oder parsen? Wie auch immer das genannt wird?).
Jetzt habe ich ein div-Container in welchem ein <p>-Tag ist und in welchem wiederrum 2x hintereinander ein <a href..>-Tag ist.
Danach findet sich noch ein 'loser' Text den ich extrahieren möchte.
Also ein Beispiel:
Code: Alles auswählen
<div class="irgendwas1">
<p class="irgendwas2">
<a href="url1">DieURL</a>
<a href="url1">DieURL</a>
EinText
</p>
</div>
Ich benutze davor bereits die "FindAll('a')[0]" und "FindAll('a')[1]"-Methode und bekomme auch das korrekte Ergebnis (eben jeweils die Werte der <a>-Tags).
Jetzt will ich noch den folgenden Text haben und habe gegooglet und finde eine Methode 'nextSilbing'. Wenn es die richtige Methode ist, dann setze ich sie falsch ein.
Nämlich so:
Code: Alles auswählen
wert = soup.find("div", {"class": "irgendwas1"}).find("p", {"class": "irgendwas2"}).findAll("a")[1].nextSibling
Natürlich mache ich was falsch. Aber 1.) ist es die richtige Methode die ich da gefunden habe?Traceback (most recent call last):
File "./start.py", line 38, in <module>
print(wert[0])
File "/usr/lib/python2.7/dist-packages/bs4/element.py", line 892, in __getitem__
return self.attrs[key]
KeyError: 0
und 2.) Wenn es so wäre, was mache ich falsch oder wenn es nicht so wäre, wie dann?
Schon mal ein große Dankeschön für eure Mühe!