CSVに書いたURLを順番に開いて全画面スクリーンショットを取るスクリプト
必要に迫られて、ちょこっと書いてみました。
環境
- Windows10Pro
- Python 3.7.2
モジュール
- webdriver-manager 1.8.2
- pytest 5.0.0
コード
こんな構成を想定してます。
.
├── data
│ └── urls.csv
├── utilities
│ └── read_csv.py
└── test_screenshot.py
メインの処理
csvのurl列に書いてあるURLを開いてはスクリーンショットを撮り、開いてはスクリーンショットを撮り、する処理です。
幅は1920px固定にしていますが、heightと同様にスクロールに対応させることも可能です。
test_screenshot.py
import time
import pytest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from utilities.read_csv import read_csv_data
class TestScreenshot():
datalist = read_csv_data("./data/urls.csv")
@classmethod
def setup_class(cls):
options = Options()
options.add_argument('--headless')
options.add_argument('--hide-scrollbars')
cls.driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=options)
cls.driver.maximize_window()
@pytest.mark.parametrize("id, url", datalist)
def test_reserve_multi(self, id, url):
driver = self.driver
driver.get(url)
time.sleep(3)
page_height = driver.execute_script('return document.body.scrollHeight')
driver.set_window_size(1920, page_height)
driver.save_screenshot(id + '.png')
CSV
id
列とurl
列のふたつを持っています。id
はスクリーンショットのファイル名にも使っています。
urls.csv
id,url
1,https://www.hoge.co.jp/
2,https://www.hoge.co.jp/pageA/
3,https://www.hoge.co.jp/pageB/
4,https://www.hoge.co.jp/pageC/
5,https://www.hoge.co.jp/pageD/
CSV読み込み処理
※Qiitaの記事から参考にした処理だったはずなのですが、参考元を探せず・・・
read_csv.py
import csv
def read_csv_data(csv_path):
rows = []
with open(str(csv_path), encoding="utf-8") as csv_data:
content = csv.reader(csv_data)
next(content, None)
for row in content:
rows.append(row)
print(rows)
return rows
使い方
> pytest test_screenshot.py
注意点
実際使ってみたのですが、JSとかを駆使して動きがあるようなサイトではうまく全画面で取得できませんでした。
たぶんこの方法に限らず、なかなか厳しいと思います。
参考
-
Python: Selenium + Headless Chrome で Web ページ全体のスクリーンショットを撮る - CUBE SUGAR CONTAINER
- 全画面のスクショを撮る処理はほぼ真似させていただきました
Author And Source
この問題について(CSVに書いたURLを順番に開いて全画面スクリーンショットを取るスクリプト), 我々は、より多くの情報をここで見つけました https://qiita.com/YoshikiIto/items/42fb32fe9c88b7141708著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .