在学习别人优秀的Web页面设计时,难免会下载下来离线分析人家的代码,可惜每次保存后,CSS文件中的背景图片无法保存到本地,
总不能打开浏览器,每次一个一个另存为吧,如果真有这样做的人,至少说明你比我勤快...
正好最近Python学的都快"走火入魔"了,拿来小试一下牛刀,自己做一个小工具下载不就完了,说干就干,分析如下:
1.通过制定的CSS路径,加载CSS文件
2.解析CSS中的形如:url('xx/xxx.gif')的片段
3.通过拼接每一个片段 + 网页基地址,算出图片的Url
4.通过Python urllib库下载图片,存为本地文件
原理很简单,对于初学Python的我来说,还是花了两个小时调试通过,见笑了。。当然代码还有很多漏洞和不完善的地方,不碍事,基本达到目的,
自产自销么,代码如下:
1 import urllib
2 import re
3 import os
4
5 def downImage(cssurl,savepath):
6 # get css file string
7 css = urllib.urlopen(cssurl).read()
8 # use re parse css and findall url('images/xxx.gif')
9 p = re.compile('\({1}.*?\)', re.IGNORECASE)
10 g = p.findall(css)
11
12 baseurl = cssurl[:cssurl.rindex("/")] + "/"
13
14 if not os.path.exists(savepath):
15 os.mkdir(savepath)
16 print g
17 for item in g:
18 print item
19 path = os.path.join(savepath, item.replace("(","").replace(")",""))
20 data = urllib.urlretrieve(os.path.join(baseurl, item.replace("(","").replace(")","")),path)
21 #data = urllib.urlopen().read()
22 print data