python-抓取图片

今天看到博客园一个文章,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()

 

 

 

posted @ 2013-08-21 13:51  夏木友人  阅读(390)  评论(0编辑  收藏  举报