简单图片爬虫
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)存储到本地。