Python/BeautifulSoup - 如何从元素中删除所有标签?

Posted

技术标签:

【中文标题】Python/BeautifulSoup - 如何从元素中删除所有标签?【英文标题】:Python/BeautifulSoup - how to remove all tags from an element? 【发布时间】:2013-04-18 20:29:06 【问题描述】:

如何简单地从 BeautifulSoup 中找到的元素中删除所有标签?

【问题讨论】:

【参考方案1】:

简单地将内容作为文本而不是 html 获取的代码:

'html_text' 参数是您将传递给此函数以获取文本的字符串

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_text, 'lxml')
text = soup.get_text()
print(text)

【讨论】:

已添加,查看即可。【参考方案2】:

这里是源代码:你可以得到正好在 URL 中的文本

URL = ''
page = requests.get(URL)
soup = bs4.BeautifulSoup(page.content,'html.parser').get_text()
print(soup)

【讨论】:

【参考方案3】:

bs4 中的 BeautifulStoneSoup 消失了,在 Python3 中变得更加简单

from bs4 import BeautifulSoup

soup = BeautifulSoup(html)
text = soup.get_text()
print(text)

【讨论】:

最好使用get_text()而不是getText() 这是为什么呢?可能确实如此,但了解原因会有所帮助。 getText() 是 bs3 语法,不符合 pep8。它可能会被弃用。【参考方案4】:

使用get_text(),它将文档中或标签下的所有文本作为单个Unicode字符串返回。

例如,从以下文本中删除所有不同的脚本标签:

<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>

预期结果是:

Signal et Communication
Ingénierie Réseaux et Télécommunications

这里是源代码:

#!/usr/bin/env python3
from bs4 import BeautifulSoup

text = '''
<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>
'''
soup = BeautifulSoup(text)

print(soup.get_text())

【讨论】:

【参考方案5】:

为什么我没有看到任何关于unwrap 方法的答案?或者,更简单的是get_text 方法

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#unwrap http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text

【讨论】:

【参考方案6】:

可以使用bs4中的decompose方法:

soup = bs4.BeautifulSoup('<body><a href="http://example.com/">I linked to <i>example.com</i></a></body>')

for a in soup.find('a').children:
    if isinstance(a,bs4.element.Tag):
        a.decompose()

print soup

Out: <html><body><a href="http://example.com/">I linked to </a></body></html>

【讨论】:

【参考方案7】:

看起来就是这样!就这么简单

通过这一行,您可以将当前元素中的所有文本部分连接在一起

''.join(htmlelement.find(text=True))

【讨论】:

以上是关于Python/BeautifulSoup - 如何从元素中删除所有标签?的主要内容,如果未能解决你的问题,请参考以下文章

Python - BeautifulSoup - 如何进行在线数据解析

Python + BeautifulSoup:如何获取“a”元素的“href”属性?

如何使用 Python BeautifulSoup 将输出写入 html 文件

[Python]BeautifulSoup安装与使用

如何使用 python/BeautifulSoup 或类似方法将 kml 文件解析为 csv?

如何使用python BeautifulSoup在<a href标签中绘制数据[重复]