python基于gevent实现并发下载器代码实例

yipeiwu_com7年前Python基础

这篇文章主要介绍了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, "/zb_users/upload/202003/2cdcuskagnz.jpg", "1.jpg"),
  gevent.spawn(my_download, "/zb_users/upload/202003/apzvetxpnkr.jpg", "2.jpg"), 
  gevent.spawn(my_download, "/zb_users/upload/202003/j5xop3g4v3x.jpg", "3.jpg"),
])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pycharm: 恢复(reset) 误删文件的方法

pycharm: 恢复(reset) 误删文件的方法

昨晚写代码的时候,一不小心把某个代码文件误删了。。。赶紧上网找了一下pycharm如何恢复误删文件,结果还真有。 经过操作,成功恢复了误删文件。现将方法过程记录如下: Method 在P...

Python3调用百度AI识别图片中的文字功能示例【测试可用】

Python3调用百度AI识别图片中的文字功能示例【测试可用】

本文实例讲述了Python3调用百度AI识别图片中的文字功能。分享给大家供大家参考,具体如下: 首先pip install命令安装baidu-aip模块,如下图所示(这里使用pip3 i...

Tensorflow分类器项目自定义数据读入的实现

Tensorflow分类器项目自定义数据读入的实现

在照着Tensorflow官网的demo敲了一遍分类器项目的代码后,运行倒是成功了,结果也不错。但是最终还是要训练自己的数据,所以尝试准备加载自定义的数据,然而demo中只是出现了fas...

Python编程之变量赋值操作实例分析

本文实例讲述了Python编程之变量赋值操作。分享给大家供大家参考,具体如下: #coding=utf8 ''''' Python中主要通过等号(=)进行赋值。 Python中的赋值...

python读出当前时间精度到秒的代码

导入time这个包就可以通过它获取是时间 # -*- coding: UTF-8 -*- import time print(time.time()) # 输出:1562...