Python/BeautifulSoup - 如何从元素中删除所有标签?
- 2025-04-16 08:55:00
- admin 原创
- 20
问题描述:
我怎样才能简单地从我在 BeautifulSoup 中找到的元素中去除所有标签?
解决方案 1:
有了BeautifulStoneSoup
gone in bs4
,在 Python3 中就更简单了
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
text = soup.get_text()
print(text)
解决方案 2:
为什么我看到的答案都没有提到这个unwrap
方法?或者更简单一点,这个get_text
方法
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#unwrap
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text
解决方案 3:
使用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())
解决方案 4:
您可以使用bs4中的分解方法:
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>
解决方案 5:
代码只是将内容作为文本而不是 html 获取:
html_text
参数是您将传递到此函数以获取文本的字符串
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_text, 'lxml')
text = soup.get_text()
print(text)
解决方案 6:
看起来这是可行的方法!就这么简单
通过这一行,您可以将当前元素中的所有文本部分连接在一起
''.join(htmlelement.find(text=True))
解决方案 7:
这是源代码:你可以获取 URL 中确切的文本
URL = ''
page = requests.get(URL)
soup = bs4.BeautifulSoup(page.content,'html.parser').get_text()
print(soup)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD