【发布时间】:2009-05-19 02:06:57
【问题描述】:
我有一些需要从 html 文件集合中提取的数据。我不确定数据是否驻留在 div 元素、table 元素或组合元素中(其中 div 标签是 table 的元素。我见过所有三种情况。我的文件大到 2 mb 和我有好几万个,到目前为止,我已经查看了表格中的 td 元素,并查看了孤独的 div 元素。在我看来,最长的时间是把文件 souped , 超过 30 秒。我尝试创建一个正则表达式来查找我正在寻找的数据,然后寻找下一个关闭标记表、tr、td 或 div 以确定我的文本包含在什么类型的结构中. 找到匹配的打开标签,剪掉该部分,然后将其全部包装在打开和关闭 HTML 标记中
stuff
<div>
stuff
mytext
stuff
</div>
所以我创建了一个如下所示的字符串:
s='<div>stuffmyTextstuff</div>'
然后我把字符串换行
def stringWrapper(s):
newString='<HTML>'+s+'</HTML>'
return newString
然后使用 BeautifulSoup
littleSoup=BeautifulSoup(newString)
然后我可以使用 BeautifulSoup 的强大功能来使用 newString 做我想做的事情。
这比先测试所有表格的所有单元格内容,直到找到我的文本,如果找不到,测试所有 div 内容的替代方法运行得更快。
我在这里遗漏了什么吗?
【问题讨论】:
标签: python regex beautifulsoup