Seite 1 von 1
Element mit BeautifulSoup auslesen.
Verfasst: Freitag 6. Dezember 2013, 15:19
von martinjo
Hallo,
ich komme mit BeautifulSoup nicht weiter, ich lese den passenden abschnitt wie folgt aus:
anschnitt enthält nun folgendes:
Code: Alles auswählen
<span id="xDescript"><br /><b>NNumber:</b><br />232356876<br /><br /><b>SUB Class:</b><br />2940<br /><br /><b>Item ID:</b><br />232356876<br /><br /><b>Description:</b><br />FEDERBALL</span>
Ich möcht ehier nur den Namen des Produkts, also FEDERBALL auslesen, bekomme das aber leider nicht hin. Kann mir da jemand auf die Sprünge helfen, Danke!
Re: Element mit BeautifulSoup auslesen.
Verfasst: Freitag 6. Dezember 2013, 15:50
von BlackJack
Das HTML ist an der Stelle ja doch ein wenig unschön strukturiert.
Code: Alles auswählen
In [29]: abschnitt.find('b', text='Description:').next_sibling.next_sibling
Out[29]: u'FEDERBALL'
Re: Element mit BeautifulSoup auslesen.
Verfasst: Freitag 6. Dezember 2013, 16:22
von martinjo
Vielen Dank für die Antwort. Dank der Hilfe habe ich es nun hinbekommen. Jedoch musste ich einen anderen weg gehen. Das erste
.next_sibling lieferte schon einen NoneType da die Info dich ich haben wollte ja nicht in einem Geschwister Tag von
b liegt sondern irgendwo wo ich auch nicht genau definieren kann. Als letztes Element des span-Tags würde ich schätzen.
Meine Lösung die ich durch ausprobieren herausgefunden habe ist:
Code: Alles auswählen
for na in abschnitt.findAll('b', text="Description:"):
print na.findNext().next
Danke und einen schönen Tag
Re: Element mit BeautifulSoup auslesen.
Verfasst: Freitag 6. Dezember 2013, 16:33
von BlackJack
@martinjo: Ich hatte das mit dem <span>-Schnippsel den Du hier gezeigt hast ausprobiert, und damit ging es. Wenn Deine Daten anders aussehen als das was Du zeigst — hellsehen kann ich (im Moment¹) nicht.
¹ Glaskugel ist gerade in der Reinigung.

Re: Element mit BeautifulSoup auslesen.
Verfasst: Montag 9. Dezember 2013, 18:02
von martinjo
Danke für die Rückmeldung, ich hatte vergessen "find" wir in deinem Beispiel durch "findAll" zu ersetzen.
