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中比较特别的除法运算和幂运算介绍
Apr 05 Python
python实现简单购物商城
May 21 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
Python GUI布局尺寸适配方法
Oct 11 Python
python+pyqt5实现24点小游戏
Jan 24 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
Python如何存储数据到json文件
Mar 09 Python
Django ValuesQuerySet转json方式
Mar 16 Python
python 获取剪切板内容的两种方法
Nov 28 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
python运行脚本文件的三种方法实例
Jun 25 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 urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
python提取页面内url列表的方法
2015/05/25 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
秋季运动会稿件
2014/01/30 职场文书
个人授权委托书格式
2014/08/30 职场文书
六查六看六改心得体会
2014/10/14 职场文书
租赁协议书
2015/01/27 职场文书
大学学生个人总结
2015/02/15 职场文书
环保建议书范文
2015/09/14 职场文书
2016年党建工作简报
2015/11/26 职场文书
SpringBoot详解执行过程
2022/07/15 Java/Android