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正则表达式match和search用法实例
Mar 26 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
深入学习Python中的装饰器使用
Jun 20 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
Python函数参数匹配模型通用规则keyword-only参数详解
Jun 10 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
简单了解Python多态与属性运行原理
Jun 15 Python
python 简单的调用有道翻译
Nov 25 Python
教你用python控制安卓手机
May 13 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下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
几款好用的python工具库(小结)
2020/10/20 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
思想政治自我鉴定
2013/10/06 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
迎国庆横幅标语
2014/10/08 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫