我试图用python3中的re模块从HTML文档中提取一些数据。
我下载了这个URL的源HTML:http://diablo2.diablowiki.net/Rune_list,并将文件重命名为rune_list.html
。你知道吗
我想要的是div
块中的id="mw-content-text"
,
所以我写了这个代码:
import re
file=open('rune_list.html','r')
data=file.read()
file.close()
pat=re.compile(r'<div id="mw-content-text"[\s\S]*</div>')
found=re.search(pat,data)
什么也没找到。我知道正则表达式可能不太好,因为据我所知,*的存在可能会将其他</div>
包含在这个正则表达式中,使得匹配的字符串成为一大块div
s
但为什么它什么也找不到?
我用我写的一个文件,一个长字符串,尝试了同样的模式
它以“<div id="mw-
…”开始,以“</div>
”结束,其中包含一些随机表,以模拟我想要找到的内容:在本例中,匹配的字符串是找到了。那个regex虽然写得不好,但也应该在原版上使用。我知道文件中有这些行。你知道吗
因此,我尝试对原始文档进行更简单的搜索:首先搜索mw-content-text
,不带双引号,然后找到匹配的字符串。
然后我尝试了"mw-content-text"
,用双引号,什么都没有找到了。找到了找不到更大的图案,因为找不到这个。你知道吗
如果我搜索<div id="mw-
,会很混乱。。。在源页面中手动(通过浏览器上的“查看页面源”打开),元素在那里。另外,我已经用regex在其他类似代码的HTML文档上做了一些搜索,它可以工作(有点)。我知道(并使用了一些)解决这个问题的其他方法(例如BeautifulSoup
),但我想尝试使用regex作为练习。你知道吗
我错过了什么?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐