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的Django框架中的QuerySets
Apr 20 Python
Python制作爬虫采集小说
Oct 25 Python
浅谈Python单向链表的实现
Dec 24 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
详解Python中的正则表达式
Jul 08 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
django迁移文件migrations的实现
Mar 31 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
Python Pandas知识点之缺失值处理详解
May 11 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 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
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
jQuery each()小议
2010/03/18 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python类的用法实例浅析
2015/05/27 Python
利用Python如何生成随机密码
2016/04/20 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
numpy.random模块用法总结
2019/05/27 Python
python绘制地震散点图
2019/06/18 Python
python实现智能语音天气预报
2019/12/02 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
大学优秀班主任事迹材料
2014/05/02 职场文书
学校督导评估方案
2014/06/10 职场文书
交通事故委托书范本
2014/09/28 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js