继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

python入门012~使用requests爬取网络图片并保存到本地

编程小石头
关注TA
已关注
手记 54
粉丝 252
获赞 1021

上一节我们学习了python3借助requests类库爬取网页数据,这一节我们继续深入的讲解python爬虫的实现。今天要将的是使用python3爬取网络图片,并保存到本地。

本节知识点
1,python3爬取网站源码
2,正则匹配获取图片链接
3,使用python3将不怕保存到本地

一,首先我们来看下要爬取的网址

下图箭头所指的就是我们要爬取的图片。

二,爬取网址源码到本地


通过上图我们可以看到,我们成功的爬取到了网站源码,而这个网站的 <img 图片显示标签里用了 data-src 懒加载来显示图片,所以我们接下来要做的就是使用正则表达式来匹配出网站源码里的图片链接。

三,正则表达式匹配图片链接


通过上图可以看出,我们成功的匹配到了网站源码里的图片链接,接下来,我们就要把这个图片保存在本地了。

四,保存图片到本地


如上图,我们做保存图片的时候,需要先在我们代码的外层目录创建一个 imgs文件夹,用于存放图片。然后编写核心代码。

五,完整代码如下。

六,运行代码,看下效果


可以看下我们爬取到的图片

最后把完整代码贴给大家

# python3爬取网络图片
import requests
import re

# 第一个爬取网址
url = 'http://www.nipic.com/photo/jingguan/ziran/index.html'

# 获得网页源码
data = requests.get(url).text
# print("网站源码", data)

# 图片正则表达式
regex = r'data-src="(.*?.jpg)"'
# re是一个列表
pa = re.compile(regex)  # 创建一个pa模板,使其符合匹配的网址
ma = re.findall(pa, data)  # findall 方法找到data中所有的符合pa的对象,添加到re中并返回
# print(ma)

# 将ma中图片网址依次提取出来
i = 0
for image in ma:
    i += 1
    image = requests.get(image).content
    print(str(i) + '.jpg 正在保存。。。')
    with open('../imgs/' + str(i) + '.jpg', 'wb') as f:  # 注意打开的是就jpg文件
        f.write(image)

print('保存完毕')

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP

热门评论

没有判断图片的类型。

查看全部评论