Python 从HTML文档中筛选所有内部文本
我想要一个大的HTML文档,我想要去除所有标签之间的所有内部文本。我发现的一切都是关于从HTML中提取文本的。我想要的是原始的HTML标记,它们的属性保持不变。如何过滤文本?使用Python 从HTML文档中筛选所有内部文本,python,html,beautifulsoup,Python,Html,Beautifulsoup,我想要一个大的HTML文档,我想要去除所有标签之间的所有内部文本。我发现的一切都是关于从HTML中提取文本的。我想要的是原始的HTML标记,它们的属性保持不变。如何过滤文本?使用soup查找所有文本。在每个文本元素上查找所有(text=True)和.extract(),以将其从文档中删除: for textelement in soup.find_all(text=True): textelement.extract() 演示: >>来自bs4导入组 >>>汤=美汤(“”)\ …你好,
soup查找所有文本。在每个文本元素上查找所有(text=True)
和.extract()
,以将其从文档中删除:
for textelement in soup.find_all(text=True):
textelement.extract()
演示:
>>来自bs4导入组
>>>汤=美汤(“”)\
…你好,世界!
这就是全部
…设置为启动!
... ''')
>>>汤
你好,世界
- 就这些
- 设置为开始
>>>对于汤中的textelement.find_all(text=True):
... textelement.extract()
...
你好,世界
u'\n'
“这就是全部\n”
你准备走了
u'\n'
>>>打印汤。美化
-
-
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('''\
... <html><body><p>Hello world!<p>
... <div><ul><li>This is all
... </li><li>Set to go!</li></ul></div>
... </body></html>''')
>>> soup
<html><body><p>Hello world!</p><p>
</p><div><ul><li>This is all
</li><li>Set to go!</li></ul></div>
</body></html>
>>> for textelement in soup.find_all(text=True):
... textelement.extract()
...
u'Hello world!'
u'\n'
u'This is all\n'
u'Set to go!'
u'\n'
>>> print soup.prettify()
<html>
<body>
<p>
</p>
<p>
</p>
<div>
<ul>
<li>
</li>
<li>
</li>
</ul>
</div>
</body>
</html>