0

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

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

现在,有时会发生什么......还有其他开放的div......就像:

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

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

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

我该怎么做呢?

4

2 回答 2

2

我会使用BeautifulSoup库。它们是为此而构建的,只要您的数据是正确的 html,它应该可以准确找到您要查找的内容。他们有相当好的文档,而且非常简单,即使对于初学者也是如此。如果您的文件位于无法访问直接 html 的网络上,请使用 urllib 获取 html。

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

如果有多个项目,请改用 find_all。这应该给你你正在寻找的东西(大致)。

编辑:固定示例(类是关键字,因此您不能使用通常的(attr="blah")

于 2013-04-12T18:03:05.493 回答
1

这是一个非常简单的解决方案,它使用非贪婪的正则表达式来删除所有 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
于 2013-04-12T18:02:34.807 回答