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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
Python Sleep休眠函数使用简单实例
Feb 02 Python
Python Property属性的2种用法
Jun 21 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
用Python实现读写锁的示例代码
Nov 05 Python
Django ModelForm组件使用方法详解
Jul 23 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
Python常用编译器原理及特点解析
Mar 23 Python
Python把图片转化为pdf代码实例
Jul 28 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
Oct 15 Python
Pycharm plot独立窗口显示的操作
Dec 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
用PHP和MySQL保存和输出图片
2006/10/09 PHP
PHP安全配置
2006/10/09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
Git命令之分支详解
2021/03/02 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
Python深入学习之上下文管理器
2014/08/31 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
Python爬虫与反爬虫大战
2020/07/30 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
后勤人员自我鉴定
2013/10/20 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2015双创工作总结
2015/07/24 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书