最近知ったのですが、割とサイトを見に行ってキャプチャとってローカルに保存するという作業を何時間もかけて、手動で行っている人って結構いるらしく、それに月300分もかけてるというんですよ。。。
すごいですよね。。。
はい、ツールにしちゃいましょう。pythonならそれくらい秒でつくれちゃいますよね(笑)
作りたいもののイメージ
前提条件:Windows10で挙動確認しております。またChromeのバージョンは最新バージョンの84を使用して作成しております。
一つのフォルダの中に、ファイルを二つ用意します。
auto_capture
ーauto_capture.py
ーutl_list.csv
「utl_list.csv」には取得したいURLを1行ごとに入れておきます。

csvを1行ずつ読み込み、クロールさせてスクショを取り、
デスクトップに保存するを繰り返すスクリプトです。
単純ですね(笑)
スクリプト
seleniumをインストールしていない場合は、
以下のコマンドでインストールしてください。
pip install selenium
また、今回はchromeを使っているので、
chromeDriverをインストールする必要があります。
以下を参照してダウンロードしてください。
https://qiita.com/memakura/items/20a02161fa7e18d8a693
上記ダウンロードが終わったら、
auto_capture.pyに以下コードを張り付けて実行してください。
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import chromedriver_binary
import time
import os
import csv
#------------------ディレクトリ作成------------------
cur_dir = os.getcwd()
sitecapture_dir = os.getenv("USERPROFILE") + "\\Desktop\\" + "サイトキャプチャーフォルダ"
os.makedirs(sitecapture_dir, exist_ok=True)
#------------------------------------------------
def get_capture():
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=options)
url_list_file = open(cur_dir + "/utl_list.csv")
reader = csv.reader(url_list_file)
number = 0
for url in reader:
driver.get(url[0])
time.sleep(10)
title = driver.title
if "|" in title:
title = title.replace("|", "_")
elif "¥" in title:
title = title.replace("¥", "_")
elif "/" in title:
title = title.replace("/", "_")
elif ":" in title:
title = title.replace(":", "_")
elif "*" in title:
title = title.replace("*", "_")
elif "?" in title:
title = title.replace("?", "_")
elif '"' in title:
title = title.replace('"', "_")
elif '<' in title:
title = title.replace('<', "_")
elif '>' in title:
title = title.replace('>', "_")
time.sleep(10)
page_width = driver.execute_script('return document.body.scrollWidth')
page_height = driver.execute_script('return document.body.scrollHeight')
driver.set_window_size(page_width, page_height)
driver.save_screenshot(sitecapture_dir + "\\" + str(number) + "_" + title + ".jpg")
number += 1
get_capture()
ディレクトリ作成の部分は、PCのフォルダ環境を取得しています。
cur_dir = os.getcwd()
→現在のディレクトリを取得
sitecapture_dir = os.getenv(“USERPROFILE”) + “\\Desktop\\” + “サイトキャプチャーフォルダ”
os.makedirs(sitecapture_dir, exist_ok=True)
→デスクトップに「サイトキャプチャーフォルダ」という名前でフォルダを作成します。
title = driver.title
~
driver.save_screenshot(sitecapture_dir + “\\” + str(number) + “_” + title + “.jpg”)
→画像の名前は、サイトのtitleタグを取得してタイトル名を名前にしております。
if “|” in title:
title = title.replace(“|”, “_”)
elif “¥” in title:~
→もしファイル名に使えない文字が入っている場合は、if文で_に変えるようにしております。
number = 0
~
number += 1
→画像の名前が被ってしまうと上書き保存されてしまうので、被らないようにnumberを追加で記載するようにしています。
page_width = driver.execute_script(‘return document.body.scrollWidth’)
page_height = driver.execute_script(‘return document.body.scrollHeight’)
→bodyタグ全体を取得し、キャプチャをとり、
デスクトップの「サイトキャプチャーフォルダ」配下に保存されます。
もし、キャプチャ作業が大量にある方はぜひ使ってみてください。
では、また。