python基於gevent實現併發下載器程式碼例項
阿新 • • 發佈:2020-01-09
這篇文章主要介紹了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"),"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"),"https://huyaimg.msstatic.com/cdnimage/anchorpost/1020/03/7949816c55f45b9adc9f03d9330af3_2168_1542941499.jpg","2.jpg"),"https://huyaimg.msstatic.com/cdnimage/anchorpost/1061/55/8071537fa10120c43c5a1359a88530_2168_1545302709.jpg","3.jpg"),])
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。