• 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"),
    ])
    
  • 相关阅读:
    javascript Date format(js日期格式化)
    WebService中方法的重载
    win10 剪贴板 拒绝访问 Cannot open clipboard
    win10 剪贴板 拒绝访问
    Image Base64 Datasnap Image delphi与c#互相兼容识别
    app 支付宝 支付 alipaySdk
    Java2OP
    delphi action学习
    FireDAC 超时
    TCheckListBox
  • 原文地址:https://www.cnblogs.com/zhangfengxian/p/10163655.html
Copyright © 2020-2023  润新知