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 相关文章推荐
vc6编写python扩展的方法分享
Jan 17 Python
Python实现遍历数据库并获取key的值
May 17 Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
Python 脚本的三种执行方式小结
Dec 21 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
sklearn的predict_proba使用说明
Jun 28 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
python基础之类方法和静态方法
Oct 24 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHP 变量的定义方法
2010/01/26 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
取得父标签
2006/11/14 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
加快Vue项目的开发速度的方法
2018/12/12 Javascript
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
Python实现直播推流效果
2019/11/26 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
创先争优一句话承诺
2014/05/29 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
师德培训心得体会2016
2016/01/09 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
移除Selenium中window.navigator.webdriver值
2022/06/10 Python