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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
Python读写Redis数据库操作示例
Mar 18 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
pandas DataFrame索引行列的实现
Jun 04 Python
简单了解python变量的作用域
Jul 30 Python
详解python pandas 分组统计的方法
Jul 30 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
用Python绘制漫步图实例讲解
Feb 26 Python
python代码实现TSNE降维数据可视化教程
Feb 28 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
python实现简易名片管理系统
Apr 11 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
DIY实用性框形天线
2021/03/02 无线电
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
酒店公关部经理岗位职责
2013/11/24 职场文书
大学自主招生自荐信
2013/12/16 职场文书
小学生获奖感言范文
2014/02/02 职场文书
优质服务演讲稿
2014/05/14 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
MySQL创建定时任务
2022/01/22 MySQL