Python爬虫中图片的爬取方式有多种多样,本文将介绍几种常见的将图片保存的方式。

1.通过urllib.urlretrieve来爬取图片

基础知识介绍:

urllib.urlretrieve(url[, filename[, reporthook[, data]]])

参数说明:

  • url:外部或者本地url
  • filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
  • reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
  • data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。

案例:

from urllib import request
import re,requests,osbase_url = "https://www.feizl.com/html/127364_{}.htm"
#请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
base_imgPath = r"C:\Users\Administrator\Desktop\123\{}.jpg"
for i in range(2,16):#构造url地址url = base_url.format(i)#图片保存路径imgSavePath = base_imgPath.format(i)#构造请求req = request.Request(url=url,headers=headers)#发送请求,获取响应response = request.urlopen(req)#提取数据html = response.read().decode()#创建正则表达式规则parrent = re.compile('class="tupian".*?src="(.*?)"',re.S)#匹配获取内容image = re.findall(parrent,html)#图片保存request.urlretrieve(image[0],imgSavePath)

2.通过文件操作流程来下载图片

基础知识:

open('文件路径','打开模式')

功能:打开或者创建一个文件
返回值:文件io对象

打开模式一共N种:

  • w模式 写模式write 文件不存在时会创建文件,如果文件已存在则会清空文件
  • r模式 读模式read 文件不存在就报错,存在则准备读取文件
  • a模式 追加模式 append 文件不存在则新建,文件存在则在文件末尾追加内容
  • x模式 抑或模式 xor 文件存在则报错,文件 不存在则新建文件
  • b模式 二进制模式 binary 辅助模式不能单独使用
  • +模式 读写模式(与其他模式结合使用)

案例:

from urllib import request
import re,requests,osbase_url = "https://www.feizl.com/html/127364_{}.htm"
#请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
base_imgPath = r"C:\Users\Administrator\Desktop\123\{}.jpg"
for i in range(2,16):#构造url地址url = base_url.format(i)#图片保存路径imgSavePath = base_imgPath.format(i)#构造请求req = request.Request(url=url,headers=headers)#发送请求,获取响应response = request.urlopen(req)#提取数据html = response.read().decode()#创建正则表达式规则parrent = re.compile('class="tupian".*?src="(.*?)"',re.S)#匹配获取内容image = re.findall(parrent,html)#图片保存req = requests.get(image[0],headers=headers)#将图片以二进制的形式保存with open(imgSavePath,'wb') as f:f.write(req.content)

3.通过os模块和ffmpeg程序来保存下载图片

基础准备:

os.system(‘comand’)

作用:会执行括号中的命令,如果命令成功执行,这条语句返回0,否则返回1

ffmpeg -i 爬取到的图片地址 图片的保存路径

【注】使用此方法之前请确保已安装ffmepg程序。关于ffmpeg的安装请自行百度,本文将不做过多叙述。

案例:

from urllib import request
import re,requests,osbase_url = "https://www.feizl.com/html/127364_{}.htm"
#请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
base_imgPath = r"C:\Users\Administrator\Desktop\123\{}.jpg"
for i in range(2,16):#构造url地址url = base_url.format(i)#图片保存路径imgSavePath = base_imgPath.format(i)#构造请求req = request.Request(url=url,headers=headers)#发送请求,获取响应response = request.urlopen(req)#提取数据html = response.read().decode()#创建正则表达式规则parrent = re.compile('class="tupian".*?src="(.*?)"',re.S)#匹配获取内容image = re.findall(parrent,html)#图片保存#将ffmpeg命令添加到系统命令中download_commond = "ffmpeg -i {} {}".format(image[0],imgSavePath)os.system(download_commond)

Python爬虫之爬取图片相关推荐

  1. python爬虫怎么爬取图片,python爬虫怎么爬取图片

    Python是很好的爬虫工具不用再说了,它可以满足我们爬取网络内容的需求,那最简单的爬取网络上的图片,可以通过很简单的方法实现.只需导入正则表达式模块,并利用spider原理通过使用定义函数的方法可以 ...

  2. python爬虫图片-python爬虫(爬取图片)

    python爬虫爬图片 第一步 载入爬虫模块 from requests_html import HTMLSession #载入爬虫模块 第二步 创建session对象 from requests_h ...

  3. python爬虫(爬取图片)

    在家无聊写的爬虫程序,用来爬取图片,由于这个是好久之前写的,有点忘了,写的不详细,后面再写一份详细的 爬虫的基本原理就是:  发起请求->获取响应->解析内容->保存数据 第一步:发 ...

  4. python爬虫怎么爬取图片_怎么用python爬取网站Jpg图片

    用python爬取网站图片,通过引用requests库就可完成.下面,小编将以爬取百度图片为例 工具/原料 python环境,网络 安装requests库 1 cmd打开命令行界面,输入pip ins ...

  5. 直播app源码Python爬虫练习 爬取图片

    virtualenv: 是针对python的包的多版本管理,通过将python包安装到一个模块来作为python的包虚拟环境,通过切换目录来实现不同包环境间的切换.其实不是非常爱捣腾的话,此工具就已经 ...

  6. 用python爬虫爬取无水印图片_使用python 爬虫,爬取图片

    一.需求: 用python实现去内涵段子里面下载网页当中的图片到本地当中 二.实现: 1.获取要爬取的URL地址 2.设置headers 3.请求网页内容,把html内容转换成XML 4.解析地址内容 ...

  7. Python爬虫 自动爬取图片并保存

    一.准备工作 用python来实现对图片网站的爬取并保存,以情绪图片为例,搜索可得到下图所示 f12打开源码 在此处可以看到这次我们要爬取的图片的基本信息是在img - scr中 二.代码实现 这次的 ...

  8. python爬虫:爬取图片素材案例

    注:本文仅作参考所有操作均为示范,如有侵权请联系删除 目录 前言 一.查看robots.txt协议 二.具体实现 1.引入库 2.分析页面 3.代码实现 4.总代码 5.实现效果 总结 前言 本文演示 ...

  9. C++爬虫项目爬取图片

    C++爬虫项目爬取图片, 值得注意的是有些网站的图片爬不来的,有反爬机制,所以一般人爬不下来. 主要代码文件 main.cpp文件里面的代码 #include "CHttp.h" ...

最新文章

  1. react native 的赋值比较,空字符串以及undefined
  2. navicat连接客户端报错
  3. 漫步数学分析番外五(下)
  4. CAD(计算机辅助设计)
  5. AutoHotKey Script解密
  6. 电子开发网---一个硬件很好的网站
  7. 乐优、青橙商城相关技术总结
  8. 幼儿课外活动游戏_幼儿园户外活动游戏有哪些
  9. CentOS7修改主机名称(hostname)总是不成功的原因及解决办法
  10. 如何编写python函数_编写高质量的Python代码系列(二)之函数
  11. Python入门基础总结笔记——正则表达式
  12. 父子进程终止顺序与僵死进程
  13. 图像增广 || 通过仿射变换实现图像的平移、缩放、旋转、翻转、错切,及MATLAB实现与分析
  14. spring boot 集成xxl-job 学习总结
  15. 前端基础--JavaScript
  16. 小白也能做的选择(上)
  17. JAVA常见基础问题
  18. Uber的成功绝非偶然
  19. hdu 5037 Frog(贪心)
  20. 码住!几十个精品2d游戏素材,设计极强!

热门文章

  1. 最火的python视频_超火Python400集视频,116-248集思维导图视频介绍(第二季)
  2. DCI format 5A相关学习
  3. 2岁内婴幼儿过敏患病率达40.9%
  4. php计算时间早上中午,php如何判断上午还是下午
  5. 尤雨溪大大在 6 月 4 日的 Vue3.0 技术分享
  6. 虚拟机中Ubuntu设置共享文件夹
  7. newcoder 筱玛的迷阵探险(搜索 + 01字典树)题解
  8. 走向卓越,从远离这5种职场谎言开始
  9. 裁切平面(clipping plane)
  10. 智能打印SDK---官方博客