1 import urllib.request 2 import re 3 4 class DownPic: 5 6 def __init__(self,url,re_str): 7 self.url = url 8 self.re_str = re_str 9 10 def getHtml(self,url): 11 page = urllib.request.urlopen(url) 12 html = page.read() 13 return str(html) 14 15 def downloadPic(self): 16 imgre = re.compile(self.re_str) #构造正则 17 html = self.getHtml(self.url) #读取界面 18 imglist = re.findall(imgre,html) 19 x = 0 20 for imgurl in imglist: 21 print(imgurl) 22 try: 23 urllib.request.urlretrieve(imgurl,"../data/%s.jpg" % x) # 将图片取到本地 24 except: 25 print("error") 26 x += 1
上面是一个类,传入两个参数,一个是网页,一个是要匹配的图片的地址
下面是调用:
1 from downpic import DownPic 2 3 downPic = DownPic("http://tieba.baidu.com/p/2460150866",r'src="(https://imgsa.baidu.com.+?\.jpg)" pic_ext') 4 5 downPic.downloadPic() 6 print("over")
从上面可以看到,一个简单爬虫的基本步骤是:
1、读取界面的HTML
2、用正则去获取到目标链接
3、下载