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

时间:2022-07-28
本文章向大家介绍python入门012~使用python3爬取网络图片并保存到本地,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

上一节我们学习了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('保存完毕')

图文教程

  • python入门001~python开发工具 pycharm的安装与破解(mac和window都有讲) https://www.jianshu.com/p/dc8299467718
  • python入门002~创建属于自己的第一个python项目 https://www.jianshu.com/p/eda772bde32a
  • python入门003~python3的安装~以python3最新版为例(Mac window都有讲) https://www.jianshu.com/p/4bb23e40a7ac
  • python入门004~创建属于自己的第一个python3项目~python3基础知识的讲解 https://www.jianshu.com/p/0fadc0369abd
  • python入门005~基本数据类型和变量的学习 https://www.jianshu.com/p/44c2a7b34cbf
  • python入门010~python3操作数据库 借助pycharm快速连接并操作mysql数据库 https://www.jianshu.com/p/a23f414cc2f2
  • python入门011~python3借助requests类库3行代码爬取网页数据 https://www.jianshu.com/p/cf22a679e96f
  • python入门012~使用python3爬取网络图片并保存到本地 https://www.jianshu.com/p/651effd4f3b8
  • python入门013~爬虫篇,网页爬虫,图片爬虫,文章爬虫,Python爬虫爬取新闻网站新闻 https://www.jianshu.com/p/7e59f52ea0b6
  • python入门014~把爬取到的数据存到数据库,带数据库去重功能 https://www.jianshu.com/p/5ba719a7d8cb
  • python入门015---python爬取前程无忧51job的职位信息并存入mysql数据库(带数据去重) https://www.jianshu.com/p/fe434693781f

视频教程

点击这个地址可以试看:https://www.bilibili.com/video/av55521385/