Python用Webスクレイピングモジュール「beautifulsoup4」でサイト内の全ての画像ファイルを自動ダウンロードする方法についてソースコード付きでまとめました。
サイト内画像の自動ダウンロード
PythonのWebスクレイピングモジュール「beautifulsoup4」を用いてサイト内の全ての画像ファイルを自動ダウンロードしてみました。
サンプルコード(Python3)
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup import os import sys def download_site_imgs(url, path): img_urls = [] # パス(保存先)が存在しなければ新規作成 if not os.path.exists(path): os.makedirs(path) # htmlのパース soup = BeautifulSoup(requests.get(url).content,'lxml') # 画像リンクなら(拡張子がjpgなど)リストに追加 for img_url in soup.find_all("img"): # imgタグのsrc要素を抽出 src = img_url.get("src") #src要素に画像の拡張子が含まれていたらリストに追加 if 'jpg' in src: img_urls.append(src) elif 'png' in src: img_urls.append(src) elif 'gif' in src: img_urls.append(src) # 画像リンク先のデータをダウンロード for img_url in img_urls: re = requests.get(img_url) print('Download:', img_url) with open(path + img_url.split('/')[-1], 'wb') as f: # imgフォルダに格納 f.write(re.content) if __name__ == '__main__': download_site_imgs('https://python.joho.info/', 'img/')
サイトのURLを保存先のパスを指定します。
【Python】Webスクレイピング入門・ライブラリ比較
Pythonを用いたWebスクレイピングと便利なライブラリの比較について入門者向けにまとめました。
コメント