我必须从带有文本边界的网站中提取文本,即包含在标签内。
我想过滤掉所有不需要的标签,例如
'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] 删除。
我来说两句