キャプチャ自動ツールを作成【Python】

最近知ったのですが、割とサイトを見に行ってキャプチャとってローカルに保存するという作業を何時間もかけて、手動で行っている人って結構いるらしく、それに月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タグ全体を取得し、キャプチャをとり、
デスクトップの「サイトキャプチャーフォルダ」配下に保存されます。

もし、キャプチャ作業が大量にある方はぜひ使ってみてください。

では、また。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です