python基于gevent实现并发下载器代码实例


Posted in Python onNovember 01, 2019

这篇文章主要介绍了python基于gevent实现并发下载器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

并发下载原理

import gevent
from gevent import monkey
import urllib.request
monkey.patch_all()
def my_download(url):
    print('GET: %s' % url)
    resp = urllib.request.urlopen(url)
    data = resp.read()
    print('%d bytes received from %s.' % (len(data), url))
gevent.joinall([
    gevent.spawn(my_download, "https://www.baidu.com"),
    gevent.spawn(my_download, "https://www.cnblogs.com"),
    gevent.spawn(my_download, "https://www.huya.com")
  
])

运行结果:

GET: https://www.baidu.com
GET: https://www.cnblogs.com
GET: https://www.huya.com
227 bytes received from https://www.baidu.com.
46411 bytes received from https://www.cnblogs.com.
353563 bytes received from https://www.huya.com.

实现多张图片同时下载

import gevent
from gevent import monkey
import urllib.request


monkey.patch_all()


def my_download(url, image_path):
  print('GET: %s' % url)
  resp = urllib.request.urlopen(url)
  data = resp.read()
  print('%d bytes received from %s.' % (len(data), url))
  
  with open(image_path, "wb") as f:
    f.write(data)
gevent.joinall([
  gevent.spawn(my_download, "https://huyaimg.msstatic.com/cdnimage/anchorpost/1099/4c/73ff3e6ce165fb658b2082d4d126c6_2168_1544414129.jpg", "1.jpg"),
  gevent.spawn(my_download, "https://huyaimg.msstatic.com/cdnimage/anchorpost/1020/03/7949816c55f45b9adc9f03d9330af3_2168_1542941499.jpg", "2.jpg"), 
  gevent.spawn(my_download, "https://huyaimg.msstatic.com/cdnimage/anchorpost/1061/55/8071537fa10120c43c5a1359a88530_2168_1545302709.jpg", "3.jpg"),
])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
python获取mp3文件信息的方法
Jun 15 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
python 不以科学计数法输出的方法
Jul 16 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Django中的FBV和CBV用法详解
Sep 15 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
Python中的np.argmin()和np.argmax()函数用法
Jun 02 Python
python进程间通信Queue工作过程详解
Nov 01 #Python
通过实例了解python property属性
Nov 01 #Python
python装饰器练习题及答案
Nov 01 #Python
Django框架HttpRequest对象用法实例分析
Nov 01 #Python
Django框架HttpResponse对象用法实例分析
Nov 01 #Python
Django框架序列化与反序列化操作详解
Nov 01 #Python
redis数据库及与python交互用法简单示例
Nov 01 #Python
You might like
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
twig模板常用语句实例小结
2016/02/04 PHP
php生成与读取excel文件
2016/10/14 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
python根据出生年份简单计算生肖的方法
2015/03/27 Python
python类继承用法实例分析
2015/05/27 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
办公室助理岗位职责
2013/12/25 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
商务英语广告词大全
2014/03/18 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
2015大学生实训报告
2014/11/05 职场文书
辞职信格式模板
2015/02/27 职场文书
信访工作个人总结
2015/03/03 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python