nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

Pythhon Seleniumトピック記録

本記事について

Python + Seleniumのトピックを記録していきます。

Chromeドライバーインストールを自動化する

Chromeドライバーインストールを自動化する方法です。 これにより、Chrome VersionやChrome Driverの実行ファイルパスを気にしなくて済みます。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

# "任意のURL"を指定
url_path = "https://www.google.co.jp/"

driver.get(url_path)

スクロールしない取得できない場合に

スクロールバーを操作しないとデータが生成されない場合に以下のコードが役に立ちます

import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager


def scroll_to_bottom(driver):

    old_position = 0
    new_position = None

    while new_position != old_position:
        # Get old scroll position
        old_position = driver.execute_script(
                ("return (window.pageYOffset !== undefined) ?"
                " window.pageYOffset : (document.documentElement ||"
                " document.body.parentNode || document.body);"))
        # Sleep and Scroll
        time.sleep(1)
        driver.execute_script((
                "var scrollingElement = (document.scrollingElement ||"
                " document.body);scrollingElement.scrollTop ="
                " scrollingElement.scrollHeight;"))
        # Get new position
        new_position = driver.execute_script(
                ("return (window.pageYOffset !== undefined) ?"
                " window.pageYOffset : (document.documentElement ||"
                " document.body.parentNode || document.body);"))

driver = webdriver.Chrome(ChromeDriverManager().install())

# "任意のURL"を指定
url_path = "https://apps.apple.com/jp/app/yamap-%E3%83%A4%E3%83%9E%E3%83%83-%E3%83%97-%E7%99%BB%E5%B1%B1%E5%9C%B0%E5%9B%B3-%E5%B1%B1%E7%99%BB%E3%82%8Agps%E3%83%8A%E3%83%93/id558780450#see-all/reviews"

driver.get(url_path)
time.sleep(2)
scroll_to_bottom(driver)