PythonのHTTPクライアントライブラリであるrequests
を利用して、ファイルダウンロードを行う方法について説明します。
まず、requests
のget()
メソッドを使用して、ファイルダウンロードのURLにアクセスします。次に、requests
のheaders
を利用してHTTPレスポンスヘッダからContentTypeや添付ファイルのファイル名を取得します。最後に、requests
のHTTPレスポンスのcontent
を利用してダウンロードファイルのデータにアクセスし、バイナリデータをファイルとして保存します。
以下に具体的なコードを示します。
import requests
import os
from datetime import datetime
DOWNLOAD_SAVE_DIR = os.getenv("DOWNLOAD_SAVE_DIR")
if __name__ == "__main__":
url = 'http://localhost:3000/report3/0000001'
response = requests.get(url)
contentType = response.headers['Content-Type']
contentDisposition = response.headers['Content-Disposition']
ATTRIBUTE = 'filename='
fileName = contentDisposition[contentDisposition.find(ATTRIBUTE) + len(ATTRIBUTE):]
saveFileName = datetime.now().strftime("%Y%m%d_%H%M%S_") + fileName
saveFilePath = os.path.join(DOWNLOAD_SAVE_DIR, saveFileName)
with open(saveFilePath, 'wb') as saveFile:
saveFile.write(response.content)
このコードは、指定したURLからファイルをダウンロードし、環境変数で指定したディレクトリに保存します。ファイル名は、HTTPレスポンスヘッダから取得し、現在の日時をプレフィックスとして付けています。
以上がPythonとrequestsを使ったファイル操作の基本的な手順です。これを応用することで、様々なWeb上のファイルを効率的にダウンロードすることが可能となります。.