爲了下載文件,我創建了一個urlopen對象(urllib2類)並以塊的形式讀取它。並行讀取文件
我想多次連接到服務器並在六個不同的會話中下載文件。這樣做,下載速度應該會變得更快。許多下載管理器都具有此功能。
我想過指定我想在每個會話中下載的文件部分,並以某種方式在同一時間處理所有會話。我不知道我怎麼能做到這一點。
爲了下載文件,我創建了一個urlopen對象(urllib2類)並以塊的形式讀取它。並行讀取文件
我想多次連接到服務器並在六個不同的會話中下載文件。這樣做,下載速度應該會變得更快。許多下載管理器都具有此功能。
我想過指定我想在每個會話中下載的文件部分,並以某種方式在同一時間處理所有會話。我不知道我怎麼能做到這一點。
聽起來像你想使用HTTP Range可用的風味之一。
編輯更新的鏈接指向存儲w3.org RFC
至於運行,你可能需要使用urllib3或requests並行請求。
我花了一些時間,使類似的問題清單:
尋找[python] +download +concurrent
給出了這些有趣的:
尋找[python] +http +concurrent
給出了這些:
尋找[python] +urllib2 +slow
:
看荷蘭國際集團的[python] +download +many
:
正如我們已經已經在討論我做了使用PycURL這樣的一個。
爲了防止崩潰,我唯一需要做的就是pycurl_instance.setopt(pycurl_instance.NOSIGNAL, 1)
。
我確實使用APScheduler來觸發單獨線程中的請求。感謝您在主線程中更改繁忙等待while True: pass
到while True: time.sleep(3)
的建議,代碼表現得相當不錯,而使用python-daemon程序包應用程序中的Runner模塊幾乎可以用作典型的UN * X守護程序。
示例:http://stackoverflow.com/a/2021586/1052325 – reclosedev
HTTP範圍鏈接返回404,不知道它的時間... – barracel
謝謝你提到這一點 - 更新鏈接指向w3.org RFC應該不那麼短暫。 – synthesizerpatel