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(‘/’))で*がついているのはリストだから。
参考
参考にさせていただきました。ありがとうございます。
- os.path.joinでリストを連結する – minus9d’s diary
- ディレクトリを作成する – Python Tips
- How to download captcha image with Python Selenium and Requests · GitHub
関連記事
Python の記事
- [2018年5月17日] matplotlibでx軸の時刻情報をフォーマットする
- [2018年5月11日] Pythonでユニークでランダムな文字列のリストを作成する
- [2018年1月29日] Pandasでcsv, excelデータの読み込み・書き込み
- [2018年1月19日] pythonでcsvファイルの入出力。エンコードとか改行コードとか考慮しつつ
- [2018年1月16日] Pythonでファイル・ディレクトリ操作
- ---本記事---
- [2017年12月27日] Pandasで行の追加(縦方向の連結)の操作メモ
- [2017年12月25日] PDFから文章を抽出する
- [2017年12月25日] seleniumのGoogle検索で最初にヒットしたサイトのスクリーンショットを撮る
- [2017年12月22日] pythonでExcelファイル内の半角をすべて全角にする
- [2017年11月14日] pythonのxlsxwriterでフォーマットの上書きをしたいが…
スポンサーリンク