今天看到博客园一个文章,python抓取图片,也没看内容,心想自己也写一个抓取脚本试试看,一方面自己也在学习python,另一方面毕竟实际工作也经常会遇到这种需要临时写脚本的时候,突击锻炼还是好的嘛。
#-*-coding:utf-8 ''' 抓取博客园图片 ''' import urllib2 import urllib import re import os import datetime import time blogurl="http://www.cnblogs.com/" srcPattern=r'src="(.*)" alt' picsrcpre="http://pic.cnitblog.com/face" def getPageHtmlCode(): pagehtmlcode=urllib2.urlopen(blogurl).read() return pagehtmlcode def IsPicLink(link): ''' 其实抓取图片的话,还可以直接根据img标签来找图片,我这里变成了把所有 的src链接都抓下来,判断图片了 ''' if link.startswith(picsrcpre) and re.findall("jpg|png",link): return True else: return False def extractSrcLinkFromHtmlCode(): pagehtmlcode=getPageHtmlCode() picsrcgroup=re.findall(srcPattern,pagehtmlcode) return picsrcgroup def genFileName(srclink): picdir="d:\\pic\\" #本意是想一个图片地址比如:http://pic.cnitblog.com/face/u323232.jpg 用u323232.jpg来作为文件名 picname=os.path.join(picdir,urllib2.urlparse.urlparse(srclink).path.lstrip(r"/face/").replace(r"/","")) return picname def main(): srclinkgroup=extractSrcLinkFromHtmlCode() for srclink in srclinkgroup: if IsPicLink(srclink): urllib.urlretrieve(srclink,genFileName(srclink)) if __name__=="__main__": main()