为了账号安全,请及时绑定邮箱和手机立即绑定

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

2019.07.18 09:57 579浏览

上一节我们学习了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-class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.*?.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('保存完毕')

点击查看更多内容

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

1人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 邀请有奖 帮助中心 APP下载
官方微信

举报

0/150
提交
取消