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 相关文章推荐
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Apr 09 Python
python3编写C/S网络程序实例教程
Aug 25 Python
python爬取各类文档方法归类汇总
Mar 22 Python
Python使用爬虫爬取静态网页图片的方法详解
Jun 05 Python
基于Python函数和变量名解析
Jul 19 Python
详解python中的模块及包导入
Aug 30 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
Python log模块logging记录打印用法解析
Jan 20 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
keras得到每层的系数方式
Jun 15 Python
Django实现聊天机器人
May 31 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python字符串处理之count()方法的使用
2015/05/18 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
岗位竞聘演讲稿
2014/01/10 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
先进工作者推荐材料
2014/12/23 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
教育读书笔记
2015/07/02 职场文书
python 如何用terminal输入参数
2021/05/25 Python
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers