carl carl - 1 year ago 123
HTML Question

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.

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download