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有点火? 给你7个学习它的理由!
Jun 26 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
mac 安装python网络请求包requests方法
Jun 13 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
在python中实现对list求和及求积
Nov 14 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
keras slice layer 层实现方式
Jun 11 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
用Node提供静态文件服务的方法
2018/07/06 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
python实现哈希表
2014/02/07 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
python写程序统计词频的方法
2019/07/29 Python
详解Python3定时器任务代码
2019/09/23 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Pytorch的mean和std调查实例
2020/01/02 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
Python加速程序运行的方法
2020/07/29 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
公证委托书大全
2014/04/04 职场文书
世界读书日的活动方案
2014/08/20 职场文书
2015年组织部工作总结
2015/04/03 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android