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读取json文件并将数据插入到mongodb的方法
Mar 23 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
python实现下载整个ftp目录的方法
Jan 17 Python
Python操作mongodb的9个步骤
Jun 04 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
django 类视图的使用方法详解
Jul 24 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 Python
AI:如何训练机器学习的模型
Apr 16 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将向Java靠拢
2006/10/09 PHP
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
php图片裁剪函数
2018/10/31 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
JavaScript手机振动API
2016/06/11 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
python 测试实现方法
2008/12/24 Python
python事件驱动event实现详解
2018/11/21 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
Python读取csv文件实例解析
2019/12/30 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
初婚初育证明
2014/01/14 职场文书
竞选村长演讲稿
2014/04/28 职场文书
物业品质提升方案
2014/06/08 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
财务整改报告范文
2014/11/05 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
大学生自荐书范文
2015/03/05 职场文书
阿甘正传观后感
2015/06/01 职场文书