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自定义解析简单xml格式文件的方法
May 11 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
python使用PIL剪切和拼接图片
Mar 23 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
Python多线程实用方法以及共享变量资源竞争问题
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统一页面编码避免乱码问题
2015/04/09 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
sina的lightbox效果。
2007/01/09 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
Python字符编码判断方法分析
2016/07/01 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
python变量的存储原理详解
2019/07/10 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
django中的数据库迁移的实现
2020/03/16 Python
python中常见错误及解决方法
2020/06/21 Python
Python定义一个Actor任务
2020/07/29 Python
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
七年级数学教学反思
2014/01/22 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
公路绿化方案
2014/05/12 职场文书
师德模范事迹材料
2014/06/03 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
写给导师的自荐信
2015/03/06 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
Redis可视化客户端小结
2021/06/10 Redis
Django中session进行权限管理的使用
2021/07/09 Python