pythonで画像をダウンロードして、URLに応じてディレクトリ分けする

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(‘/’))で*がついているのはリストだから。

参考

参考にさせていただきました。ありがとうございます。

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。