首页 文章

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

提问于
浏览
1

让我说我有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']

用于文本 .

我怎么能排除像'b'这样的标签(只包含文字),所以我可以获得所需的输出

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

最好也是 not 字符串,但等效于NavigableStrings或类似字符串 .

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

1 回答

  • -1

    基于更新的OP的问题:

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

    现在你可以将它附加到列表中 .

相关问题