经常使用 下载的11种姿态 Python 一种比一种初级

  • 电脑网络维修
  • 2024-11-14

上方你将学习如何克制或许遇到的各种应战,例如下载重定向的文件、下载大型文件、实现一个多线程下载以及其余战略。

1. 经常使用requests

你可以经常使用requests模块从一个URL下载文件。

思考以下代码:

你只有经常使用requests模块的get方法失掉URL,并将结果存储到一个名为“myfile”的变量中。而后,将这个变量的内容写入文件。

2. 经常使用wget

你还可以经常使用Python的wget模块从一个URL下载文件。你可以经常使用pip按以下命令装置wget模块:

思考以下代码,咱们将经常使用它下载Python的logo图像。

在这段代码中,URL和门路(图像将存储在其中)被传递给wget模块的download方法。

3. 下载重定向的文件

在本节中,你将学习如何经常使用requests从一个URL下载文件,该URL会被重定向到另一个带有一个.pdf文件的URL。该URL看起来如下:

要下载这个pdf文件,请经常使用以下代码:

在这段代码中,咱们第一步指定的是URL。而后,咱们经常使用request模块的get方法来失掉该URL。在get方法中,咱们将allow_redirects设置为True,这将准许URL中的重定向,并且重定向后的内容将被调配给变量myfile。另外,搜查群众号顶级架构师后盾回复“面试籍”,失掉一份惊喜礼包。

最后,咱们关上一个文件来写入失掉的内容。

4. 分块下载大文件

思考上方的代码:

首先,咱们像以前一样经常使用requests模块的get方法,然而这一次性,咱们将把stream属性设置为True。

接着,咱们在上班目录中创立一个名为PythonBook.pdf的文件,并关上它启动写入。

而后,咱们指定每无所谓下载的块大小。咱们曾经将其设置为1024字节,接着遍历每个块,并在文件中写入这些块,直到块完结。

不美丽吗?不要担忧,稍后咱们将显示一个下载环节的进展条。

5. 下载多个文件(并行/批量下载)

要同时下载多个文件,请导入以下模块:

咱们导入了os和time模块来审核下载文件须要多少期间。ThreadPool模块准许你经常使用池运转多个线程或进程。

让咱们创立一个便捷的函数,将照应分块发送到一个文件:

这个URL是一个二维数组,它指定了你要下载的页面的门路和URL。

就像在前一节中所做的那样,咱们将这个URL传递给requests.get。最后,咱们关上文件(URL中指定的门路)并写入页面内容。

如今,咱们可以区分为每个URL调用这个函数,咱们也可以同时为一切URL调用这个函数。让咱们在for循环中区分为每个URL调用这个函数,留意计时器:

如今,经常使用以下代码行交流for循环:

运转该脚本。

6. 经常使用进展条启动下载

进展条是clint模块的一个UI组件。输入以下命令来装置clint模块:

思考以下代码:

在这段代码中,咱们首先导入了requests模块,而后,咱们从clint.textui导入了进展组件。惟一的区别是在for循环中。在将内容写入文件时,咱们经常使用了进展条模块的bar方法。

7. 经常使用urllib下载网页

在本节中,咱们将经常使用urllib下载一个网页。

urllib库是Python的规范库,因此你不须要装置它。

以下代码行可以轻松公开载一个网页:

在这里指定你想将文件保留为什么以及你想将它存储在哪里的URL。

在这段代码中,咱们经常使用了urlretrieve方法并传递了文件的URL,以及保留文件的门路。文件裁减名将是.html。

8. 经过代理下载

假设你须要经常使用代理下载你的文件,你可以经常使用urllib模块的ProxyHandler。请看以下代码:

在这段代码中,咱们创立了代理对象,并经过调用urllib的build_opener方法来关上该代理,并传入该代理对象。而后,咱们创立恳求来失掉页面。

此外,你还可以依照官网文档的引见来经常使用requests模块:

你只有要导入requests模块并创立你的代理对象。而后,你就可以失掉文件了。

9. 经常使用urllib3

urllib3是urllib模块的改良版本。你可以经常使用pip下载并装置它:

咱们将经过经常使用urllib3来失掉一个网页并将它存储在一个文本文件中。

导入以下模块:

在处置文件时,咱们经常使用了shutil模块。

如今,咱们像这样来初始化URL字符串变量:

而后,咱们经常使用了urllib3的PoolManager ,它会跟踪必要的衔接池。

创立一个文件:

最后,咱们发送一个GET恳求来失掉该URL并关上一个文件,接着将照应写入该文件:

10. 经常使用Boto3从S3下载文件

要从Amazon S3下载文件,你可以经常使用Python boto3模块。

在开局之前,你须要经常使用pip装置awscli模块:

关于AWS性能,请运转以下命令:

如今,按以下命令输入你的详细信息:

要从Amazon S3下载文件,你须要导入boto3和botocore。Boto3是一个Amazon SDK,它准许Python访问Amazon web服务(如S3)。Botocore提供了与Amazon web服务启动交互的命令行服务。

Botocore自带了awscli。要装置boto3,请运转以下命令:

如今,导入这两个模块:

在从Amazon下载文件时,咱们须要三个参数:

初始化变量:

如今,咱们初始化一个变量来经常使用会话的资源。为此,咱们将调用boto3的resource()方法并传入服务,即s3:

最后,经常使用download_file方法下载文件并传入变量:

11. 经常使用asyncio

asyncio模块关键用于处置系统事情。它围绕一个事情循环启动上班,该事情循环会期待事情出现,而后对该事情作出反响。这个反响可以是调用另一个函数。这个环节称为事情处置。asyncio模块经常使用协同程序启动事情处置。

要经常使用asyncio事情处置和协同性能,咱们将导入asyncio模块:

如今,像这样定义asyncio协同方法:

关键字async示意这是一个原生asyncio协同程序。在协同程序的外部,咱们有一个await关键字,它会前往一个特定的值。咱们也可以经常使用return关键字。

如今,让咱们经常使用协同创立一段代码来从网站下载一个文件:

在这段代码中,咱们创立了一个异步协同函数,它会下载咱们的文件并前往一条信息。

而后,咱们经常使用另一个异步协同程序调用main_func,它会期待URL并将一切URL组成一个队列。asyncio的wait函数会期待协同程序实现。

如今,为了启动协同程序,咱们必定经常使用asyncio的get_event_loop()方法将协同程序放入事情循环中,最后,咱们经常使用asyncio的run_until_complete()方法口头该事情循环。

经常使用Python下载文件是很幽默的。宿愿本教程对你有用!

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/4521.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号