正在从嘈杂的字符串中提取文本。。python

2024-05-16 09:39:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些html文档,我想从中提取一个非常特殊的文本。 现在,此文本始终位于

<div class = "fix">text </div>

现在,有时发生的是。。。还有其他开场白…比如:

 <div class = "fix"> part of text <div something> other text </div> some more text </div>

现在。。我想提取所有对应的文本

 <div class = "fix">                     </div> markups??

我该怎么做?你知道吗


Tags: oftext文档文本divhtmlmoresome
2条回答

我会使用BeautifulSoup库。他们是为这个而建的,只要你的数据是正确的html,它就会找到你想要的东西。他们有相当好的文档,而且非常直接,即使对于初学者也是如此。如果您的文件在web上的某个地方无法访问直接html,请使用urllib获取html。你知道吗

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)
soup.find({"class":"fix"})

如果其中有多个项目,请改用find\u all。这应该给你什么你正在寻找(大致)。你知道吗

编辑:固定的例子(类是一个关键字,所以你不能使用通常的(attr=“blah”)

下面是一个非常简单的解决方案,它使用一个非贪婪的正则表达式来删除所有html标记:

import re
s =  "<div class = \"fix\"> part of text <div something> other text </div> some more text </div>"
s_text = re.sub(r'<.*?>', '', s)

这些值是:

print(s)
<div class = "fix"> part of text <div something> other text </div> some more text </div>
print(s_text)
 part of text  other text  some more text

相关问题 更多 >