Pythonでウェブブラウザを動かしてみたいと思い、Seleniumというライブラリを使ってみました。この記事では、Chromeを自動で開いて、ページを一番下までスクロールし、また一番上に戻るところまでやってみます。
結論から言うと、pip install selenium でインストールし、webdriver.Chrome() でブラウザを開き、ページに Keys.END を送るとスクロール できます。
要点
- インストールは
pip install seleniumだけです - Selenium 4.6以降は、ChromeDriverを自分でダウンロードしなくても自動で用意してくれます
- ページの
htmlにKeys.ENDを送ると一番下へ、Keys.HOMEで一番上へ移動します - 動きが速すぎて見えないので、
time.sleep()で止めると確認しやすいです
1. Seleniumをインストールする
pip install selenium
2. ブラウザのドライバを用意する
Seleniumでブラウザを動かすには、ブラウザごとの「ドライバ」が必要です。今回は、ふだん使い慣れているChromeを使います。
当時(2019年)は、自分のChromeのバージョンを確認して、合うChromeDriverをダウンロードする必要がありました。今は、Selenium 4.6以降に入っている「Selenium Manager」が自動でドライバを用意してくれるので、この手順はいりません。
3. ブラウザを開く
動作確認もかねて、ブラウザを開いてみます。
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.google.com/')
この3行を動かすと、Chromeが立ち上がります。

よく見ると「Chromeは自動テスト ソフトウェアによって制御されています。」と書いてあります。人の手で立ち上げたときは、この文字は出ません。これだけで、なんだかワクワクしてくるのは私だけでしょうか。
4. 画面をスクロールしてみる
いよいよ操作します。わかりやすいように、ウィキペディアのページを開いてスクロールしてみます。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('https://ja.wikipedia.org/wiki/メインページ')
time.sleep(10)
elem = browser.find_element(By.TAG_NAME, 'html')
elem.send_keys(Keys.END)
time.sleep(5)
elem.send_keys(Keys.HOME)
流れは次のとおりです。
- ページを開いてから10秒待つ(
time.sleep(10)) - ページ全体(
html)を選んで、Keys.ENDで一番下までスクロール - 5秒待ってから、
Keys.HOMEで一番上に戻る
最初は time.sleep() を入れずに動かしたので、「あれ?スクロールした?」と思いました。速すぎて見えなかっただけです(冗談ではありません)。止める時間を入れると、動きがわかりやすくなります。
このコードは、当時のコードを今のSeleniumの書き方に直したもので、まだ動作を確かめていません。
JavaScriptでスクロールする方法
キーを送る代わりに、JavaScriptでスクロールさせる方法もあります。
browser.execute_script('window.scrollTo(0, document.body.scrollHeight);') # 一番下へ
browser.execute_script('window.scrollTo(0, 0);') # 一番上へ
ページによっては、キーを送ってもスクロールしないことがあるので、そのときはこちらを試してみてください。
当時のコードでエラーが出るとき
当時は find_element_by_tag_name('html') と書いていましたが、Selenium 4.3以降ではこの書き方は削除されました。AttributeError が出たら、上のコードのように find_element(By.TAG_NAME, 'html') に直してください。
まとめ
pip install seleniumでインストールし、webdriver.Chrome()でブラウザを開きます- Selenium 4.6以降は、ChromeDriverを自動で用意してくれます
htmlにKeys.ENDを送ると一番下へ、Keys.HOMEで一番上へ移動します- キーでスクロールしないときは、
execute_scriptでJavaScriptを使います
次は、ログイン画面にIDとパスワードを自動で入力します。Seleniumで自動ログインする方法に続きます。

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング