打开网易新闻 查看精彩图片

前言

使用脚本进行下载的需求很常见,可以是常规文件、web页面、Amazon S3和其他资源。Python 提供了很多模块从 web 下载文件。下面介绍

一、使用 requests

requests 模块是模仿网页请求的形式从一个URL下载文件

示例代码:

打开网易新闻 查看精彩图片

二、使用 wget

安装 wget 库

示例代码

打开网易新闻 查看精彩图片

三、下载重定向资源

有些 URL 会被重定向到另一个 URL,后者是真正的下载链接。很多软件的下载其实都是这样的形式。URL看起来如下

重定向的 URL 也可以用 requests 库进行下载,只需加一个参数就可以

打开网易新闻 查看精彩图片

四、大文件分块下载

有些文件非常的大,如果我们直接下载,可能会因为事件原因或者网络原因造成下载失败,这时候我可以使用分块下载的形式进行下载。

requests 支持分块下载,只需要将 stream 设为True 即可

打开网易新闻 查看精彩图片

五、并行下载

多线程、多进程并发下载,大大提高下载速度

打开网易新闻 查看精彩图片

六、下载中加入进度条

使用进度条更直观的查看下载进度,这里使用 clint 模块实现进度条功能

下载

打开网易新闻 查看精彩图片

七、使用 urllib 模块下载

urllib库是Python的标准库,因此不需要安装它。

下载代码

八、通过代理下载

因为一些众所周知的原因我们下载国外的资源会非常的慢,这时候可以使用代理的方式进行下载

requests 模块使用代理

打开网易新闻 查看精彩图片

urllib 模块使用代理

打开网易新闻 查看精彩图片

九、使用 urllib3

urllib3 是 urllib 模块的改进版本。使用pip下载并安装