在学习Python正则表达式时,教程中最后给了个例子,通过正则表达式获得一个网站的所有照片,并将其保存在本地。感觉这个例子挺好,将正则表达式应用在爬虫中,还巩固了文件操作的知识。
教程视频:python正则表达式
目标:爬下慕课网中python相关的课程封面图片
代码如下:
import re
import requests
i = 0
res = requests.get('http://www.imooc.com/search/course?words=python')
buf = res.text
urllist = re.findall(r'http://.+\.jpg',buf)
for url in urllist:
f = open(str(i)+'.jpg','wb')
req = requests.get(url)
img = req.content
f.write(img)
f.close()
i+=1
TIPS:
1、通过re.findall正则表达式,得到所有图片链接,并将其放入列表中。
2、打开文件时,打开方式为’wb’,也就是二进制格式的。图片的存储为二进制的,因此获取图片处代码为req.content。
r.text 得到的为文本格式,如可见文字
r.content 得到的为二进制格式,如图片类型
3、文件名通过变量 i 进行改变,循环最后不要忘了关闭文件。
4、尝试过爬某些图库类网站,发现果然经过了反爬处理,后续继续学习。