Python

【Python】seleniumでWeb ページ全体のスクリーンショットを撮れない場合の解決方法

Python

はじめに

本記事では、ページ全体のスクリーンショットを撮れない場合の解決方法について解説します。

前提として、MacOSでseleniumとGoogle Choromeを使います。(*windowsも下記の方法で対応可能です)

インストール〜導入

Amazonの領収書を自動取得する方法〜シリーズ3:コード解説〜 | 経営管理deプログラミング

seleniumのインストール

seleniumは、以下をターミナルで叩くとインストール可能です。

pip install selenium

chromedriver-binaryのインストール

pip install chromedriver-binary

バージョンしていする場合は、以下を実行してください。バージョンは例で入力していますが、ご自身のChoromeのバージョンと合わせて実行ください。

バージョンが間違ってインストールされてseleniumを実行しようとすると、〇〇のバージョンをインストールくださいとのエラーがでます。そのエラー通りのバージョンをインストールください。

pip install chromedriver-binary==88.0.4324.96.0

chromedriverのPATH

以下のコードで確認可能です。

chromedriver-path

ここで出てきたPATHはコードの中で使うのでコピーしておいてください。

コード

コード本文

import os
import sys
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# File Name
FILENAME = "screen.png"#fileの名前です。

# set driver and url
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome('ここにchromedriverのPATHをペースト',options=options)
url = 'https://www.google.com/'#ここに取得したいページのURLを記述する
driver.get(url)
# get width and height of the page
w = driver.execute_script("return document.body.scrollWidth;")
h = driver.execute_script("return document.body.scrollHeight;")

# set window size
driver.set_window_size(w,h)

# Get Screen Shot
driver.save_screenshot(FILENAME)

# Close Web Browser
driver.quit()

解説

以下赤字の部分が大切な部分です。これを設定しないとページ全体がスクリーンショットされなきなります。

  • options = Options()
  • options.add_argument(‘–headless’)
  • driver = webdriver.Chrome(‘ここにchromedriverのPATHをペースト’,options=options)

実行結果

以下のようなスクリーンショット画像が取得できました。

今回の記事は、以上です。

最後までお読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました