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 相关文章推荐
python操作MongoDB基础知识
Nov 01 Python
Python中使用dom模块生成XML文件示例
Apr 05 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python 操作文件的基本方法总结
Aug 10 Python
Python中的 enum 模块源码详析
Jan 09 Python
python中metaclass原理与用法详解
Jun 25 Python
Python一行代码解决矩阵旋转的问题
Nov 30 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
Python快速实现一键抠图功能的全过程
Jun 29 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 生成唯一id的几种解决方法
2013/03/08 PHP
php变量作用域的深入解析
2013/06/03 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
跟老齐学Python之Python安装
2014/09/12 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
python数据处理实战(必看篇)
2017/06/11 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python利用微信公众号实现报警功能
2018/06/10 Python
解析python的局部变量和全局变量
2019/08/15 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
农村婚礼主持词
2014/03/13 职场文书
动员大会主持词
2014/03/20 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
化学教育专业求职信
2014/07/08 职场文书
房屋出售授权委托书
2014/10/12 职场文书