1. ホーム
  2. python

[解決済み] URLから返送されたZipファイルをダウンロードする

2022-03-04 13:18:45

質問

ウェブブラウザで送信すると、zipファイルを保存するためのダイアログボックスをポップアップするURLがある場合、Pythonでこのzipファイルをキャッチしてダウンロードするにはどうすればよいでしょうか?

どのように解決するのですか?

多くの人は requests が利用可能であれば requests ドキュメント は、URLから生データをダウンロードし、保存するためにこれを推奨します。

import requests 

def download_url(url, save_path, chunk_size=128):
    r = requests.get(url, stream=True)
    with open(save_path, 'wb') as fd:
        for chunk in r.iter_content(chunk_size=chunk_size):
            fd.write(chunk)

回答はダウンロードについて尋ねているので と保存 ZIPファイルの読み方については詳しく説明していません。可能性については、以下の多くの回答のうちの1つを参照してください。

もし、何らかの理由で requests を使用することができます。 urllib.request の代わりに 上記ほど堅牢ではないかもしれません。

import urllib.request

def download_url(url, save_path):
    with urllib.request.urlopen(url) as dl_file:
        with open(save_path, 'wb') as out_file:
            out_file.write(dl_file.read())

最後に、まだPython 2を使っている場合は urllib2.urlopen .

from contextlib import closing

def download_url(url, save_path):
    with closing(urllib2.urlopen(url)) as dl_file:
        with open(save_path, 'wb') as out_file:
            out_file.write(dl_file.read())