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多线程http下载实现示例
Dec 30 Python
python开发中range()函数用法实例分析
Nov 12 Python
python中list列表的高级函数
May 17 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Pandas标记删除重复记录的方法
Apr 08 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python的help函数如何使用
Jun 11 Python
简单了解Python多态与属性运行原理
Jun 15 Python
pytorch 如何使用float64训练
May 24 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输出时间格式
2013/08/31 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python的UTC时间转换讲解
2019/02/26 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Python包和模块的分发详细介绍
2020/06/19 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
Unix控制后台进程都有哪些进程
2016/09/22 面试题
公司培训欢迎词
2014/01/10 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript