获取除标签列表之外的所有标签 BeautifulSoup

毗湿奴德夫

我必须从带有文本边界的网站中提取文本,即包含在标签内。

我想过滤掉所有不需要的标签,例如

'style', 'script', 'head', 'title', 'meta', '[document]'

并从其余标签中获取文本

例如:

HTML

<script>console.log('hello');</script>
<span>Header</span>
<p>Some paragraph</p>

输出

['Header', 'Some paragraph']

我知道我可以

soup.findall('span', text=True) 

等等 forp和其他包含文本的标签

这效率不高,因此我需要一种替代方法来过滤掉所有不需要的元素,然后获取文本。

马兹

您可以首先从汤对象中删除所有不需要的标签,如下所示:

代码:

from bs4 import BeautifulSoup as bs

html = """<script>console.log('hello');</script>
<span>Header</span>
<p>Some paragraph</p>
"""
tags = ['style', 'script', 'head', 'title', 'meta', '[document]']
soup = bs(html, 'html.parser')

for t in tags:
    [s.extract() for s in soup(t)]

for el in soup.find_all():
    print(el.text)

输出:

Header
Some paragraph

然后你可以看到script标签消失了,你可以根据需要处理汤对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从列表理解中获取 beautifulsoup 标签中的所有链接

使用 Python beautifulsoup 选择除特定标签之外的所有内容

使用BeautifulSoup获取标签内的所有内容

Python beautifulsoup - 获取所有由break标签分隔的文本

通过BeautifulSoup删除除一个标签外的所有html标签

BeautifulSoup抓取未找到所有'a'标签

BeautifulSoup并未找到所有标签

使用BeautifulSoup获取没有标签的文本?

使用 BeautifulSoup 获取 HTML 标签

beautifulsoup在标签之间获取文本

如何使用BeautifulSoup查找两个标签之间的所有列表项?

在Python中使用BeautifulSoup使用特定样式获取所有标签

获取与特定属性值匹配,但与BeautifulSoup匹配的任何标签或属性名称的所有元素

python - 如何使用beautifulsoup在网页中的某个文本之前获取所有<p>标签?

无法使用python-BeautifulSoup获取标签下的所有节点

BeautifulSoup:查找具有给定属性的所有标签

BeautifulSoup 没有显示标签中的所有元素

BeautifulSoup:在满足停止条件之前找到所有标签

BeautifulSoup-用逗号分隔所有<a>标签

如何获得BeautifulSoup标签的所有直接子级?

BeautifulSoup找不到所有的div标签

BeautifulSoup,我如何拔出不在标签中的所有实例

BeautifulSoup 找不到标签

BeautifulSoup找不到标签

抓取标签属性 BeautifulSoup

BeautifulSoup <small>标签

BeautifulSoup创建<img />标签

BeautifulSoup 标签替换

从Beautifulsoup标签提取src