2016-08-03 9 views
2

Ich habe einen Text wieText nach bestimmten Tag mit schönen Suppe bekommen

page.content = <body><b>Title:</b> Test title</body> 

ich den Titel-Tag mit

bekommen
soup = BeautifulSoup(page.content) 
record_el = soup('body')[0] 
b_el = record_el.find('b',text='Title:') 

aber wie kann ich den Text nach dem b-Tag bekommen? Ich möchte den Text nach dem Element, das "Titel:" enthält, erhalten, indem ich auf dieses Element und nicht auf das Körperelement verweise.

Antwort

5

Mit Bezug auf the docs Sie könnten die next_sibling Ihrer b_el verwenden möchten:

b_el.next_sibling # contains " Test title" 

"Geschwister" in diesem Zusammenhang ist der nächste Knoten, nicht das nächste Element/Tag. Der nächste Knoten Ihres Elements ist ein Textknoten, sodass Sie den gewünschten Text erhalten.

+0

ja ich habe das versucht, aber ich bekomme AttributeError: 'NavigableString' Objekt hat kein Attribut 'next_sibling' – carl

+0

Sind Sie sicher, dass Sie dies auf dem gefundenen Element aufgerufen haben? NavigableString nennt BeautifulSoup TextNodes. Bitte überprüfen Sie den Typ von b_el. –

+0

Ich habe die Ausgabe über – carl

Verwandte Themen