Python

[python] 複数のファイルを同時にダウンロードしたい

grequests package を使えばよい。

GRequestsのインストール

http://aifan.jp/python-httpリクエストを並列処理非同期できるライブラ/

コーディング例

import grequests
import shutil
import io

lst_url = [URLのリスト]

# requestの generator を生成
req = (grequests.get(url) for url in lst_url)

# generator から request を取得,最大8セッションまで非同期処理
lst_res = grequests.map(req, size=8, stream=True)

# すべてのrequestを処理しおわったら,ファイルに保存
for idx, res in enumerate(lst_res):
    f = "./downloaded/%02d.jpg" % (idx,)
    with io.open(f, "wb") as ofs:
        shutil.copyfileobj(res.raw, ofs)

コメントを残す