大家好,本期将跟大家分享一下如何利用Python实现网络图片的爬取和存储。前面本人已经尝试过利用urlretrieve()方法爬取守望先锋官网所有英雄图片。今天本人要分享的是Python中的一个http库——requests库,并且通过举两个例子,来告诉大家如何利用requests库实现网络图片的爬取和存储。

实例一:爬取爱宠网上宠物狗图片

首先找到爱宠网网站,本文以爬取下面第一张卡迪根威尔士柯基的图片为例:


然后点击查看这只狗的详细信息如下:

之后通过鼠标右键检查,找到该图片对应的url地址。

可以看到,该图片对应的url地址为:http://www.ichong123.com/files/2016/9/27/86/1_hkcmq.jpg。
下面将介绍如何使用requests库实现网页图片的爬取和存储。
首先,我们需要导入requests库。

import requests # 导入requests库

然后需要获取网页内容,这里我们可以先使用get()方法,返回一个服务资源的Response对象。

r = requests.get('http://www.ichong123.com/files/2016/9/27/86/1_hkcmq.jpg') # 获取网页内容

这里,我们可以用type函数查看一下变量r的类型:

type(r) # 查看变量类型

运行结果:

requests.models.Response

可以看到,变量r的类型为一个Response对象。
那么如何查看网页是否访问成功呢?可以通过检测请求的状态码,如果状态码为200,表示访问成功,如果为404,503等其它数字,说明访问失败。下面我们查看一下网页是否访问成功。

r.status_code # 检测请求的状态码

运行结果:

200

可以看到,状态码为200,说明网页访问成功。
为了实现图片的存储,我们还需导入os模块。os模块提供了丰富的方法用来处理文件和目录。本文假设爬取的网络图片存储在C:\Users\Lenovo\Desktop\图片目录下,可以通过以下几行代码实现。

path = 'C:\\Users\\Lenovo\\Desktop\\图片' # 图片存储位置
if not os.path.exists(path): # 检查桌面是否有一个名字为“图片”的文件夹,如果没有,就创建它os.mkdir(path)

这样,本人电脑桌面就新建了一个名为图片的文件夹。
最后我们就可以使用Response对象的content属性爬取上述图片了。利用content属性,可以获取http响应内容的二进制形式,然后通过文件写入的方式,即可爬取该图片。

1with open(path + '\\dog.jpg', 'wb') as f: # 以写入方式打开文件
2    f.write(r.content) # 写入文件
3    f.close # 关闭文件

最后,我们发现,图片已经爬取成功,并给图片取名dog.jpg。

以下是完整代码:

import requests # 导入requests库
import os # 导入os模块def down_pic(url, filename):'''定义一个函数,用于下载网络图片,参数url为图片对应的url地址,filename为爬取图片名字'''r = requests.get(url) # 获取网页内容path = 'C:\\Users\\Lenovo\\Desktop\\图片' # 爬取图片待存储目录if not os.path.exists(path): # 判断桌面是否有一个名称为“图片”的文件夹,如果没有,就创建它os.mkdir(path)    # 爬取图片with open(path + '\\' + filename, 'wb') as f:     f.write(r.content) # 以二进制形式写入文件   f.close # 关闭文件if __name__ == '__main__':url = 'http://www.ichong123.com/files/2016/9/27/86/1_hkcmq.jpg' # 图片对应的url地址down_pic(url, 'dog.jpg') # 调用函数

实例二:爬取抖音视频

爬取视频的方法跟上述一样,首先需要找到视频对应的url地址,然后替换即可。本文尝试爬取本人一位同学在抖音发布的关于王者荣耀的视频,此人操作、意识一流,号称××大学第一关羽,是一位时常在王者荣耀大神观战出没的男子,一位集颜值与实力于一身的明星级人物,他就是放学都别走灬(为他打个广告)。
如何爬取呢?只需修改实例一代码中的少量内容,即可实现抖音视频的爬取,以下是完整代码:

import requests # 导入requests库
import os # 导入os模块def down_video(url, filename):'''定义一个函数,用于下载抖音视频,参数url为视频对应的url地址,filename为爬取视频名字'''r = requests.get(url) # 获取网页内容path = 'C:\\Users\\Lenovo\\Desktop\\抖音' # 爬取视频待存储目录if not os.path.exists(path): # 判断桌面是否有一个名称为“抖音”的文件夹,如果没有,就创建它os.mkdir(path)# 爬取视频with open(path + '\\' + filename, 'wb') as f:     f.write(r.content) # 以二进制形式写入文件   f.close # 关闭文件if __name__ == '__main__':url = 'http://v26-dy.ixigua.com/142e8e004651705cc784f5866ff348bf/5ee1be37/video/tos/hxsy/tos-hxsy-ve-0015/45b6077ce7594c8cb542d9271cbd396c/?a=1128&br=11061&bt=3687&cr=0&cs=0&dr=0&ds=3&er=&l=20200611121613010014040037000724BB&lr=aweme&mime_type=video_mp4&qs=0&rc=M3Rwajd5c3Y6czMzZ2kzM0ApNWk4ZjhoZ2U4NzhnOGU4O2duLjZvM25vanJfLS0vLS9zczMuYDAwMi4zMGE0Xi9iMi46Yw%3D%3D&vl=&vr=' # 视频对应的url地址down_video(url, '××大学第一关羽.mp4') # 调用函数

由于视频无法上传,大家可自行下载。

好了,以上就是本期内容,谢谢您的阅读!

往期精彩:
Python基础(一)| 变量与数据类型
Python基础(二)| 列表
Python基础(三)| 元组

想要学习更多?欢迎关注本人公众号:Python无忧

Python爬取网络图片详解相关推荐

  1. 用python爬取网络图片_简单实现Python爬取网络图片

    本文实例为大家分享了Python爬取网络图片的具体代码,供大家参考,具体内容如下 代码: import urllib import urllib.request import re #打开网页,下载器 ...

  2. python爬财务数据_同花顺财经-财务数据爬取思路详解-python爬虫

    同样的开头,近日,群友在讨论问题的时候发来一链接,询问如何抓取个股页面上财务指标,好奇心旺盛的博主立马打开网页研究了一番. 网址如下:http://stockpage.10jqka.com.cn/60 ...

  3. 手把手教你使用python爬取网络图片并存入本地

    文章目录 1.文章说明 2.方法解析 2.1.urlopen 2.2.BeautifulSoup 2.3.urlretrieve 3.所有代码 4.可能会遇到的坑 4.1.urlopen 出现403的 ...

  4. Python爬取京东商品评论数据

    一.前言 本文将承接笔者的上篇文章Python爬取京东商品数据,使用京东商品唯一id字段"sku"拼接url,得到真实的京东商品评论网址,进而解释数据并保存到文件中,所爬取到的数据 ...

  5. python爬取的图片无法显示的问题

    一开始把图片爬下来的时候完全都不能看,查了很多也没清楚原因,暑假那会貌似看到了这篇博客,没有在意.现在补上,补上,补上.膜拜大神呀. 原博客地址:http://www.cnblogs.com/east ...

  6. python爬取图片-Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  7. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...

    Python爬虫包 BeautifulSoup  递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...

  8. python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...

    本次小编向大家介绍的是根据用户的需求输入想爬取的内容及页数. 主要步骤: 1.提示用户输入爬取的内容及页码. 2.根据用户输入,获取网址列表. 3.模拟浏览器向服务器发送请求,获取响应. 4.利用xp ...

  9. python爬取app中的音频_Python爬取喜马拉雅音频数据详解

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Python爬取喜马拉雅音频数据详解 一.项目目标 爬取喜马拉雅音频数据 受害 ...

最新文章

  1. Spark Scala语言学习系列之完成HelloWorld程序(三种方式)
  2. python基础教程3-Python基础教程(三)
  3. 题目1195:最长最短文本
  4. VS2010 不能将参数 2 从“char [20]”转换为“LPCWSTR”的错误解决
  5. tomcat7查看后台管理怎么设置用户名和密码
  6. vue NoData
  7. 【健康生活】Google、百度之间的选择
  8. ubuntu 16.04: 添加字体
  9. Web漏洞扫描工具:AWVS下载
  10. 细丝菲涅尔衍射MATLAB,任意孔型菲涅尔衍射matlab仿真.docx
  11. 为计算机技术奉献一生语录,关于奉献精神的名言50句
  12. ZooKeeper官方Java例子解读
  13. 阿卡迪亚大学计算机专业好考吗,阿卡迪亚大学很烂吗
  14. Android肝帝战纪之Fragmentation的使用(单Activity+多Fragment设计)
  15. 一种三分频电路的实现与仿真
  16. Could not transfer artifact XXX:XXX:pom:XX from/to镜像地址
  17. maven中无法下载ojdbc
  18. 【数学建模】模糊数学运算——python实现各类运算
  19. ddb文件怎么打开?PROTEL 99se软件pcb设计下载安装使用教程(5)
  20. 光华股份在深交所上市:市值突破51亿元,前三季度收入约10亿元

热门文章

  1. 天正暖通天圆地方在哪_CAD及天正暖通快捷键大全
  2. BodyTagSupport与TagSupport的区别
  3. 天地图在vue中的应用 删除指定的标注
  4. 廉价迷你Linux机器Raspberry Pi详解
  5. 如何制作gif图片?这几个方法分享给你
  6. 算力引领 数“聚”韶关——第二届中国韶关大数据创新创业大赛圆满收官
  7. VC设置静态文本控件的显示字体和显示内容
  8. [渝粤教育] 金陵科技学院 服装立体裁剪 参考 资料
  9. API带签名接口设计
  10. 【建议收藏】ICEPAK设置命令总结