zoukankan      html  css  js  c++  java
  • 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"),
    ])
    
  • 相关阅读:
    Retrofit2源码分析
    Android8.0硬件加速的重绘流程
    Android单元测试
    rand5->rand7,rand7->rand10
    快速排序的随机化版本
    快速排序
    亦或实现交换
    在最坏情况下,找到n个元素中第二小的元素需要n+lgn-2次比较
    3*n/2时间内求出最大最小值
    基数排序
  • 原文地址:https://www.cnblogs.com/zhangfengxian/p/10163655.html
Copyright © 2011-2022 走看看