【发布时间】:2016-02-02 13:59:40
【问题描述】:
我有一个 python 脚本,可以下载 html 和 html 中显示的图像,因此我可以在本地打开文件。
它工作正常,唯一的问题是,有一个特定的 div,其中的图像不会被正则表达式下载/找到。我不知道为什么。这不是一个大问题,但我想知道原因。
这是脚本的重要部分:
url = "http://www.somedomain.com"
urlContent = urllib2.urlopen(url).read()
#Write originalHtml to file
f = open("originalHtml",'w')
f.write(urlContent)
f.close()
# HTML image tag: some_text
imgUrls = re.findall('img .*?src="(.*?)"', urlContent)
之后,我逐个遍历链接,下载图像并替换 html 中的链接,以便“src”指向我下载它的本地路径。该脚本负责相对链接和直接链接。
但是,部分图像永远不会被下载。 这是没有被拾取的 html:
<img src="/images/news/den-mcx80001.jpg" style="width:60px;height:36px;margin-top:12px; margin-bottom:12px; margin-left:17px; margin-right:17px;float:left; ">
不过,这确实得到了采纳:
<img class="productimg" style="width:72px;height:74px;margin-top:15px; margin-bottom:15px; margin-left:3px; margin-right:28px " src="/images/01_prdarticledocs/ImagesSmall/jpr/jpr-prx718xlf.jpg" alt="jpr-prx718xlf">
我不是正则表达式方面的专家,远非如此,但它似乎应该同时掌握两者,不是吗?
【问题讨论】:
-
使用beautifulsoup库
-
这是不使用正则表达式解析 HTML 的众多原因之一。
-
对,就是那个。可悲的是,我知道那个帖子.. 那么,重新开始。
-
Mini sn-p 显示您的代码应该可以工作 repl.it/BixJ/0
标签: python regex html-parsing