BeautifulSoup - 用标签作为文本提取文本

时间:2016-10-07 09:16:10

标签: python beautifulsoup

假设我有html

<div>Hey</div><div>This is <b>some text<b/>, right here. <a>Link<a/></div>

和代码

soup = BeautifulSoup(html)
texts = soup.findAll(text=True)

print()将返回

['Hey', 'This is ', 'some text', ', right here.', 'Link']

用于文本。

我如何排除像&#39; b&#39; (只包含文本),所以我可以获得所需的输出

['Hey', 'This is <b>some text<b/>, right here.', 'Link']

最好字符串,但等效于NavigableStrings或类似字符。

换句话说,如何从导航树中排除某些标签?

1 个答案:

答案 0 :(得分:-1)

基于更新后的OP问题:

eDiv = soup.findAll("div")
if eDiv.find("b") is None:
    tag = eDiv.text
else:
    tag = eDiv

现在您可以将其添加到列表中。