简单图片爬虫

import re
import urllib.request
def craw(url,page):
    html1=urllib.request.urlopen(url).read()
    html1=str(html1)
    pat1='<div id="plist".+? <div class="page clearfix">'
    result1=re.compile(pat1).findall(html1)
    #print(result1)
    result1=result1[0]
    pat2='<img width="220" height="220" data-img="1" data-lazy-img="//(.+?.jpg)">'
    imagelist=re.compile(pat2).findall(result1)
    print(imagelist)
    x=1
    for imageurl in imagelist:
        imagename="/root/img1/" +str(page) + str(x) +".jpg"
        print(imagename)
        imageurl="http://" + imageurl
        try:
            urllib.request.urlretrieve(imageurl,filename=imagename)
        except urllib.error.URLError as e:
            if hasattr(e,"code"):
                x+=1
            if hasattr(e,"reason"):
                x+=1
        x+=1

for i in range(1,79):
    url="http://list.jd.com/list.html?cat=9987,653,655&page=" + str(i)
    craw(url,i)
~              

  爬取过程,首先通过urllib.request.urlopen(url).read(),读取对应网页的全部源代码,然后根据上面的第一个正则表达式进行第一次信息过滤,过滤完成后,进行第二次过滤,找出所有目标的图片链接,将这些链接地址存储到一个列表中,然后遍历该列表,并将对应链接通过urllib.request.urlretrieve(imageurl,filename=imagename)存储到本地。

posted @ 2018-01-11 11:15  一只宅男的自我修养  阅读(224)  评论(0编辑  收藏  举报