用python写个类似浏览器的下载器,超简单的

以前没有学习python时,想要下载一个网上的文件,就只能把浏览器打来,找到文件的下载链接,将地址放进去。

用python写个类似浏览器的下载器,超简单的

现在学了python后,才发现,原来下载一个东西是十分简单的。

举个例子吧。我们来看这张图片和它的URL。

 这里还是要推荐下小编的Python学习群:483546416,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

用python写个类似浏览器的下载器,超简单的

现在我想要下载这张图片,其实是一件非常简单的事,只需要简单几行代码就可以了

用python写个类似浏览器的下载器,超简单的

曾经我把这个代码演示给同学看,他说怎么这么麻烦,直接右键保存不就行了。我反问道,如果让你下载一千一万张图片,你还能手动保存吗?我们学编程的目的其中之一,就是让电脑帮我们做烦琐的事情。

言归正传,那么怎么写一个下载器呢?和之前的流程一样,先获取URL,然后使用requests模块下载,然后,把文件保存下来。那么问题来了,如果我们下载的文件过大,比如我之前用多线程下载过百度网盘上的文件,效果确实很好,一个线程100kb/s,开20个线程,就可以达到2m/s,非常好用,可是遇到一个问题,就是文件过大,如果将数据,现在下载再写入文件中,对电脑不友好,因为这是下载的数据会先保存在内存里,很快内存就不够用了。

找了很久都没有找到好的解决方法,怎么才可以向下载器一样边下载边写入文件呢。后再终于找到了解决方法。

用python写个类似浏览器的下载器,超简单的

只要使用iter_content方法就可一点迭代获取数据了。

来看完整的代码

用python写个类似浏览器的下载器,超简单的

私信下载获取源码

发布了35 篇原创文章 · 获赞 75 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章