pythonで画像をダウンロードする。画像のURLに応じて、ディレクトリを分ける。たとえば、画像のURLがhttps://example.com/hoge/img/img01.jpg であったとしたら、example.com/hoge/img という階層構造ができるようにディレクトリを作成する。
目次
ソースコード
https://example.com/hoge/img/img01.jpg をダウンロードするとしてコードを書く。
ダウンロードした画像は、imgディレクトリ下に、example.com/hoge/img/img01.jpg として保存されるように、ディレクトリを生成して階層構造を作る。
import os
import requests
def download_img(img):
r = requests.get(img)
# プロトコル削除
img = img.replace('http://','').replace('https://','')
# 出力ファイル名
# /で区切る
output = os.path.join('img',*img.split('/'))
outdir = os.path.dirname(output)
if not os.path.isdir(outdir):
os.makedirs(outdir)
with open(output, 'wb') as f:
f.write(r.content)
if __name__ == '__main__':
url = 'https://example.com/hoge/img/img01.jpg'
download_img(url)
URLにファイル名に使えない文字が含まれている場合(:とか)も考慮して適宜replaceするとよりよい。
output = os.path.join('img',*img.split('/'))で*がついているのはリストだから。
参考
参考にさせていただきました。ありがとうございます。
コメント