行いたいこと
PythonからJavascriptを使用して画面のスクロールをしたいと思います。
厳密にはSeleniumでChromeを起動して、
表示されているブラウザのスクロール処理ですね。
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
from selenium import webdriver from time import sleep from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select # /*------------------------------------------ # ドライバーの準備 # --------------------------------------------*/ def get_driver(): # chromeドライバーまでのパスを格納する driver = webdriver.Chrome("chromedriver_win32/chromedriver.exe") driver.maximize_window() return driver # /*------------------------------------------ # GoogleのURLを取得する # --------------------------------------------*/ def get_top_page(driver): # 検索キーワード key_word = 'python' # Google検索 url = 'https://www.google.com/search?q={}'.format(key_word) # URLへ遷移する driver.get(url) sleep(3) # 画面スクロール get_scroll(driver) # /*------------------------------------------ # スクロール処理 # --------------------------------------------*/ def get_scroll(driver): # 下に1000 driver.execute_script("window.scrollTo(0, 1000);") sleep(5) # /*------------------------------------------ # main処理 # --------------------------------------------*/ if __name__ == "__main__": # ブラウザのdriver取得 driver = get_driver() # ページのソース取得 search_key = get_top_page(driver) |
解説
Chromeでグーグル検索 > 画面をスクロール。
という流れです。
実際にjavascript(スクロール)をしているのは以下の処理です。
webdriverで開いているChromeをexecute_scriptして
画面を↓へ1000スクロールしています。
1 |
driver.execute_script("window.scrollTo(0, 1000);") |