Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
406 views
in Technique[技术] by (71.8m points)

python - get text after specific tag with beautiful soup

I have a text like

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

I can get the Title tag with

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

but how can I get the text after the b tag? I would like to get the text after the element containing "Title:" by referring to that element, and not the body element.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Referring to the docs you might want to use the next_sibling of your b_el:

b_el.next_sibling    # contains " Test title"

"Sibling" in this context is the next node, not the next element/tag. Your element's next node is a text node, so you get the text you want.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...