Python 3 – PythonSeleniumでWebページのスクリーンショットを撮る

Webページのスクリーンショットは、Python Selenium WebDriverを使用して自動的に取得できます。 まず、セレンモジュールとタイムモジュールをロードします。 ページの読み込みが完了するのを待つ時間モジュールが必要です。

次に、ページが読み込まれたら、スクリーンショットを撮ります。 これは、pngファイルまたは別の画像形式にすることができます。 次に、Webブラウザーを閉じます。そうしないと、無期限に開いたままになります。

関連コース:

Seleniumのスクリーンショット

開始する前に、Selenium Webドライバーがインストールされていること(Webブラウザーに固有)、およびSeleniumモジュールがインストールされていることを確認してください。

この方法でウェブページのスクリーンショットを撮ることができます get_screenshot_as_file() パラメータとしてファイル名を使用します。
以下のプログラムは、Firefoxを使用してWebページをロードし、スクリーンショットを撮りますが、どのWebブラウザーでも実行できます。

1
2
3
4
5
6
7
8
9
10
from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get('https://www.python.org')
sleep(1)

driver.get_screenshot_as_file("screenshot.png")
driver.quit()
print("end...")

スクリーンショット画像は、Pythonスクリプトと同じディレクトリに保存されます。 スクリーンショットを保存する必要があるパスを明示的に定義しない限り。

セレンのスクリーンショット

最初のステップは、必要なモジュールをインポートすることです。

1
2
from selenium import webdriver
from time import sleep

次に、ブラウザを起動してWebページをロードします。

1
2
3
driver = webdriver.Firefox()
driver.get('https://www.python.org')
sleep(1)

ページが読み込まれると、メソッドを使用してスクリーンショットを撮ることができます .get_screenshot_as_file(filename)

1
driver.get_screenshot_as_file("screenshot.png")

例をダウンロード

PythonSeleniumで全ページのスクリーンショットを撮る

上記のコードは、表示されているブラウザウィンドウのスクリーンショットのみを取得します。 上から下にWebページを含むフルページのスクリーンショットを撮るにはいくつかの方法があります。
この方法で行うことができます。これを機能させるには、ブラウザをヘッドレスに設定する必要があることに注意してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


options = webdriver.ChromeOptions()
options.headless = True
driver = webdriver.Chrome(options=options)

URL = 'https://pythonbasics.org'

driver.get(URL)

S = lambda X: driver.execute_script('return document.body.parentNode.scroll'+X)
driver.set_window_size(S('Width'),S('Height'))
driver.find_element_by_tag_name('body').screenshot('web_screenshot.png')

driver.quit()

セレンを初めて使用する場合は、 それなら私はこの本を強くお勧めします。

Hope this helps!

Source link