0x00编写思路
爬虫说到底就是模拟人机交互,页面对开发人员来说就是代码(html代码),爬取图片就是下载图片,下载图片对应图片url,有了这个思想和操作步骤,总结成以下步骤:
1.获取html页面代码
2.提取html页面代码的图片url
3.根据图片url下载图片
0x01实现代码
#coding=utf-8 import urllib import re #获取站点html代码 #string getHtml(url) #{ def getHtml(url): page = urllib.urlopen(url) html = page.read() return html #} #下载图片 #bool getImg(html): #{ def getImg(html): res_url = r"(?<=src=\").+?(?=\")" link = re.findall(res_url, html, re.I | re.S | re.M) x = 0; for url in link: check_value = url.find(".jpg") and url.find("https:"); if check_value != -1: urllib.urlretrieve(url, 'C:\Users\Reacher\Desktop\HtmlSrc\%s.jpg' % x); x = x + 1; return True; #}
0x02遇到的坑
爬下来图片数据的时候,发现一直都是一张图片,那个气啊。通过print()大法发现都没有问题,打开目录发现图片是有下载下来,就是一直在覆盖,喵了个噜。后来检查代码发现
urllib.urlretrieve(url, 'C:\Users\Reacher\Desktop\HtmlSrc\%s.jpg')
尴尬,后来改为使用数字统计作为图片名字。
urllib.urlretrieve(url, 'C:\Users\Reacher\Desktop\HtmlSrc\%s.jpg' % x);