1. 程式人生 > 程式設計 >python基於gevent實現併發下載器程式碼例項

python基於gevent實現併發下載器程式碼例項

這篇文章主要介紹了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"),])

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。