Python爬取网络图片详解
大家好,本期将跟大家分享一下如何利用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爬取网络图片详解相关推荐
- 用python爬取网络图片_简单实现Python爬取网络图片
本文实例为大家分享了Python爬取网络图片的具体代码,供大家参考,具体内容如下 代码: import urllib import urllib.request import re #打开网页,下载器 ...
- python爬财务数据_同花顺财经-财务数据爬取思路详解-python爬虫
同样的开头,近日,群友在讨论问题的时候发来一链接,询问如何抓取个股页面上财务指标,好奇心旺盛的博主立马打开网页研究了一番. 网址如下:http://stockpage.10jqka.com.cn/60 ...
- 手把手教你使用python爬取网络图片并存入本地
文章目录 1.文章说明 2.方法解析 2.1.urlopen 2.2.BeautifulSoup 2.3.urlretrieve 3.所有代码 4.可能会遇到的坑 4.1.urlopen 出现403的 ...
- Python爬取京东商品评论数据
一.前言 本文将承接笔者的上篇文章Python爬取京东商品数据,使用京东商品唯一id字段"sku"拼接url,得到真实的京东商品评论网址,进而解释数据并保存到文件中,所爬取到的数据 ...
- python爬取的图片无法显示的问题
一开始把图片爬下来的时候完全都不能看,查了很多也没清楚原因,暑假那会貌似看到了这篇博客,没有在意.现在补上,补上,补上.膜拜大神呀. 原博客地址:http://www.cnblogs.com/east ...
- python爬取图片-Python爬取网页中的图片(搜狗图片)详解
前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...
- python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...
Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...
- python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...
本次小编向大家介绍的是根据用户的需求输入想爬取的内容及页数. 主要步骤: 1.提示用户输入爬取的内容及页码. 2.根据用户输入,获取网址列表. 3.模拟浏览器向服务器发送请求,获取响应. 4.利用xp ...
- python爬取app中的音频_Python爬取喜马拉雅音频数据详解
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Python爬取喜马拉雅音频数据详解 一.项目目标 爬取喜马拉雅音频数据 受害 ...
最新文章
- Spark Scala语言学习系列之完成HelloWorld程序(三种方式)
- python基础教程3-Python基础教程(三)
- 题目1195:最长最短文本
- VS2010 不能将参数 2 从“char [20]”转换为“LPCWSTR”的错误解决
- tomcat7查看后台管理怎么设置用户名和密码
- vue NoData
- 【健康生活】Google、百度之间的选择
- ubuntu 16.04: 添加字体
- Web漏洞扫描工具:AWVS下载
- 细丝菲涅尔衍射MATLAB,任意孔型菲涅尔衍射matlab仿真.docx
- 为计算机技术奉献一生语录,关于奉献精神的名言50句
- ZooKeeper官方Java例子解读
- 阿卡迪亚大学计算机专业好考吗,阿卡迪亚大学很烂吗
- Android肝帝战纪之Fragmentation的使用(单Activity+多Fragment设计)
- 一种三分频电路的实现与仿真
- Could not transfer artifact XXX:XXX:pom:XX from/to镜像地址
- maven中无法下载ojdbc
- 【数学建模】模糊数学运算——python实现各类运算
- ddb文件怎么打开?PROTEL 99se软件pcb设计下载安装使用教程(5)
- 光华股份在深交所上市:市值突破51亿元,前三季度收入约10亿元