Python Selenium を使用して Web サイトを下にスクロール
Web サイトのスクロールなど、ブラウザでのタスクを自動化したい場合があります。Python には、Selenium と呼ばれる強力な Web 自動化ツールがあります。
Web ブラウザーを制御し、特定のアクションを自動的に実行できるようにします。Web サイト上で水平方向と垂直方向に自動的にスクロールするスクリプトを作成できます。
Selenium と Chrome WebDriver をインストールする
Selenium をインストールするには、次のコマンドを使用します。
#Python 3.x
pip install selenium
ChromeDriver は、Selenium WebDriver が Chrome と対話するために使用するもう 1つの実行可能ファイルです。Chrome Web ブラウザーでタスクを自動化する場合は、ChromeDriver もインストールする必要があります。
Chrome ブラウザのバージョンに応じて、互換性のあるドライバを選択する必要があります。Chrome ドライバーをインストールして構成する手順は次のとおりです。
- このリンクをクリックします。Chrome ブラウザのバージョンとオペレーティングシステムの種類に応じて Chrome ドライバをダウンロードします。
- Chrome ブラウザのバージョンを確認する場合は、Chrome の右上隅にある 3つのドットをクリックし、[ヘルプ]をクリックして、[Google Chrome について]を選択します。Chrome のバージョンは about セクションで確認できます。
- zip ファイルを解凍し、Chrome ドライバーを実行します。
Python Selenium を使用して Web サイトを下にスクロール
構文:
driver.execute_script("window.scrollBy(x_pixels, y_pixels);")
ここで、x_pixels
は水平方向にスクロールするピクセル数(x 軸上)を示し、y_pixels
は垂直方向にスクロールするピクセル数(y 軸上)を示します。このガイドでは、x_pixels
が 0 になるように、垂直方向にのみスクロールします。
指定したピクセルで下にスクロール
次のコードで WebDriver インスタンスを作成し、Chrome ドライバーへのパスを指定しました。次に、get()
メソッドを使用して、ターゲット Web サイトの URL をドライバーインスタンスに設定しました。
目的のブラウザで対象のウェブサイトを開きます。maximize_window()
を使用して、より良い画像を得るために Chrome のウィンドウを最大化しました。
Selenium には、execute_script()
メソッドを介して JavaScript コマンドを実行する機能があります。メソッド window.scrollBy()
を使用して 1000 ピクセルずつ自動スクロールダウンし、このコマンドを JavaScript 実行プログラムに渡しました。
ウェブサイトは自動的に垂直方向に 1000 ピクセル下にスクロールします。
コード例:
# Python 3.x
from selenium import webdriver
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.get("https://www.verywellmind.com/what-is-personality-testing-2795420")
driver.maximize_window()
driver.execute_script("window.scrollBy(0, 1000);")
出力:
ウェブサイトの一番下までスクロールダウン
ページの一番下までスクロールしたいとします。document.body.scrollHeight
は、ページの全高をピクセル単位で示します。
この高さを下にスクロールするピクセル数として指定します。
コード例:
# Python 3.x
from selenium import webdriver
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.get("https://www.verywellmind.com/what-is-personality-testing-2795420")
driver.maximize_window()
driver.execute_script("window.scrollBy(0, document.body.scrollHeight);")
出力:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn