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二叉树的实现实例
Nov 21 Python
python实现通过shelve修改对象实例
Sep 26 Python
python中map、any、all函数用法分析
Apr 21 Python
详解python时间模块中的datetime模块
Jan 13 Python
python requests 使用快速入门
Aug 31 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
Python代码缩进和测试模块示例详解
May 07 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
如何在python中写hive脚本
Nov 08 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
基于Python爬取素材网站音频文件
Oct 21 Python
Python使用UDP实现720p视频传输的操作
Apr 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
python编写俄罗斯方块
2020/03/13 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
个人融资协议书
2014/10/02 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
导游词之长城八达岭
2019/09/24 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Java实现多线程聊天室
2021/06/26 Java/Android
Golang并发操作中常见的读写锁详析
2021/08/30 Golang