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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
PyQt 线程类 QThread使用详解
Jul 16 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
python实现求特征选择的信息增益
Dec 18 Python
Python 经典算法100及解析(小结)
Sep 13 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
如何在django中添加日志功能
Feb 06 Python
Python定时器线程池原理详解
Feb 26 Python
解决python对齐错误的方法
Jul 16 Python
Python3接口性能测试实例代码
Jun 20 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
Python中模块string.py详解
2017/03/12 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
解决python 找不到module的问题
2020/02/12 Python
Python如何定义有默认参数的函数
2020/08/10 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
全球性的在线购物网站:Zapals
2017/03/22 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
节能标语大全
2014/06/21 职场文书
办理收楼委托书范本
2014/10/09 职场文书
通讯稿范文
2015/07/22 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android