适用于:单一网址中图片连续、一张一张保存太麻烦。
环境:Python开发环境
首先罗列要使用的知识点:
1. re正则表达式
2. findall
作用:在字符串中找到正则表达式所匹配的所有子串,并组成一个列表返回
3.urllib.request.urlopen
urlopen是urllib.request模块提供的最基本的构造HTTP请求的方法,可以模拟浏览器的一个请求发起过程,同时还支持授权验证(authentication)、重定向(redirection)、浏览器Cookies以及其他内容。
从关键字入手:
1. 按F12
2.
3.随意点击一张图片
跳转到:
得到
pattern = ‘data-src="(.+?)"’#通过模式匹配的方式:把网址中所有匹配对象放到pattern中
上代码:
from re import findall #re为正则表达式
from urllib.request import urlopen
#目的是获取资源
#打开这个网站
url = "http://mp.weixin.qq.com/s/yQnYPgr2W6PeZyI2f-3iag" #要爬取网站的地址 切记http后面不要有 s,否则不允许查询
#把它作为一个fp进行操作
with urlopen(url) as fp:
content=fp.read().decode()#执行过长先打开-》decode截码—》读取
pattern = 'data-src="(.+?)"'#通过模式匹配的方式:把网址中所有匹配对象放到pattern中
result =findall(pattern,content)#到pattern和content中去搜索
for index,item in enumerate(result):
with urlopen(str(item))as fp:
with open(str(index)+".jpeg",'wb')as fp1:#jpeg是要存储的格式
fp1.write(fp.read())
运行代码时候,所爬取的图片和代码保存的位置相同,如果使用Pycharm的,可以建设一个单独的文件储存,便于管理。