下载保存图片

今天要下载很多张图片,手动麻烦,于是写了个小程序。期间遇到不少问题。

最主要的一个是,访问某些网页会返回403 Forbidden,后来在加入了header信息之后得到解决。记录下。

这里用到了正则,urllib网页编程等知识。好久没用了,算是复习。

 

代码
   
   
# -*- encoding:UTF-8 -*-

import re,urllib2

def getPage(url):
''' 下载文件html代码,找出一楼的核心代码 '''
opener
= urllib2.build_opener()
# 不加头信息则出现403错误和乱码
opener.addheaders = [( ' User-agent ' , ' Mozilla/5.0 ' )];
htmlAll
= opener.open( url ).read()
reg1Floor
= ' <div class="msgfont">(.*?)</div> '
html
= re.search(reg1Floor,htmlAll)
html
= html.group()
# 文件保存编码和文件编辑编码都是utf-8,所以decode一次,不然会出现乱码,但是不影响结果。
return html.decode( ' utf-8 ' )

def getImg(url):
''' 从核心代码中照图图片地址,并且下载保存、命名 '''
regImg
= ' <img src="(.*?)" alt="" /> '
dir
= ' F:\\My_Document\\Desktop\\temp\\ '
pageHtml
= getPage(url)
# 找到所有图片地址
imglist = re.findall(regImg,pageHtml)
# print imglist
for index in xrange( 1 ,len(imglist) + 1 ):
finename
= dir + str(index) + ' .jpg '
urllib.urlretrieve(imglist[index
- 1 ], finename)
print finename + ' ok! '


if __name__ == ' __main__ ' :
getImg(
' http://topic.csdn.net/u/20101013/11/024465A6-8E16-444C-9A09-DD374D29044C.html ' )

你可能感兴趣的:(下载)