Python爬虫文件下载图文教程


Posted in Python onDecember 23, 2018

而今天我们要说的内容是:如果在网页中存在文件资源,如:图片,电影,文档等。怎样通过Python爬虫把这些资源下载下来。

1、怎样在网上找资源:

就是百度图片为例,当你如下图在百度图片里搜索一个主题时,会为你跳出一大堆相关的图片。

还有如果你想学英语,找到一个网站有很多mp3的听力资源,这些可能都是你想获取的内容。

现在是一个互联网的时代,只要你去找,基本上能找到你想要的任何资源。

Python爬虫文件下载图文教程

2、怎样识别网页中的资源:

以上面搜索到的百度图片为例。找到了这么多的内容,当然你可以通过手动一张张的去保存,但这样做既费力又费事。你当然更希望通过程序自动去下载所找到的资源。要想代码识别这些资源,就要告诉代码这些资源有哪些特征,怎样在网页中找到它们。

打开浏览器的调试功能(不同浏览器可能有差别,不知道的百度一下吧)。找出网页中你想要下载资源的路径,如下图所示。如果有许多类似资源需要下载,则要找到识别这些资源地址的规律,然后告诉代码。

Python爬虫文件下载图文教程

3、资源下载方法一:

代码很简单,直接上代码:

from urllib.request import urlretrieve

urlretrieve("图片URL", "./image.jpg")

 

直接通过urlretrieve函数就把URL对应的图片给下载到当前文件夹(./)中了,并把图片命名为image.jpg。

4、资源下载方法二:

还是直接看代码:

import requests

resource = requests.get("图片URL")

with open("./image.jpg", mode="wb") as fh:

  fh.write(resource.content)

此下载方法要安装python的requests库。从功能上来说与下载方法一是一样的。python库的安装方法用pip就好。很简单,这里都不??铝恕?/p>

5、资源下载方法三:

看代码:

import requests

resource = requests.get("图片URL", stream=True)

with open("./image.jpg", mode="wb") as fh:

  for chunk in resource.iter_content(chunk_size=100):

    fh.write(chunk)

此方法与下载方法二的不同之处在于在get方法调用时使用了参数【stream=True】。而在写入的文件的时候是分块写入的。

什么意思呢:

前两种方法是把一个文件全部下载到内存后,再一起写入到硬盘文件中。

方法三是下载一定的量(这里指的是100字节)后,就写入到硬盘文件中,直到全部写完。

第三种方法的好处是,如果在下载大容量文件时,不会造成内存的过度使用。

6、资源下载说明一:

上述的代码都是通过下载图片资源为例子的,但所有其它资源,如文档,电影等的下载方式是一样的。关键是要正确的识别出网页中资源所对应的URL地址才能够正确的下载(因为有些资源是用的相对路径或加密后的路径)。

7、资源下载说明二:

上面例子中的代码都是下载单一资源的。如果要在同一网页中下载多个资源的思路如下:

1. 找出要下载资源的URL,并形成一个资源集合;

2. 把下载函数中的资源URL与保存路径参数化;

3. 遍历资源集合,依靠循环调用下载函数来达到多个资源下载的目的。

总结:以上就是本次介绍关于Python爬虫下载文件的所有知识点内容,感谢大家的阅读。

Python 相关文章推荐
python实现给微信公众号发送消息的方法
Jun 30 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Python如何调用外部系统命令
Aug 07 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
python [:3] 实现提取数组中的数
Nov 27 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
Python数组并集交集补集代码实例
Feb 18 Python
Python处理mysql特殊字符的问题
Mar 02 Python
如何对python的字典进行排序
Jun 19 Python
Python调用C/C++的方法解析
Aug 05 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
python爬虫获取百度首页内容教学
Dec 23 #Python
Python爬虫设置代理IP(图文)
Dec 23 #Python
celery4+django2定时任务的实现代码
Dec 23 #Python
python3使用pandas获取股票数据的方法
Dec 22 #Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 #Python
python3 cvs将数据读取为字典的方法
Dec 22 #Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 #Python
You might like
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
asp 取文本框名称代码
2008/12/02 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
世界最大的票务市场:viagogo
2017/02/16 全球购物
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
Java面试笔试题大全
2016/11/23 面试题
生产副总岗位职责
2013/11/28 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
社区消防工作实施方案
2014/03/21 职场文书
学生安全责任书
2014/04/15 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
小学生倡议书范文
2014/05/13 职场文书
教师求职自荐书
2014/06/14 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
电气工程师岗位职责
2015/02/12 职场文书
Java基础——Map集合
2022/04/01 Java/Android