pythonからchromeを操作する

pythonからchromeを操作する。

pythonでseleniumライブラリを利用することで、
ChromeやFirefoxを操作できるようだ。

Windows環境で試してみた。

pipでseleniumドライバーをインストール


python -m pip install selenium

ChromeのWebDriverをダウンロード

https://sites.google.com/a/chromium.org/chromedriver/downloads

zipファイルがダウンロードされ、解凍すると「chromedriver.exe」というファイルが1つ入っていた。
これを経由してChromeへアクセスするようだ。

pythonから呼び出し

準備(必須ではない)

chromedriver.exeが存在する場所にPATHを通す。
またはPATHが通っているディレクトリにchromedriver.exeを置く。

参考:この方法は必須ではない。
ドライバーのインスタンス生成時に、chromedriver.exeのフルパスを指定できるので、その方法を用いても良い。

pythonからchromeを利用する。

まずは、seleniumのwebdriverをインポート。


from selenium import webdriver

webdriverのインスタンスを生成する。

chromedriver.exeにPATHが通っている場合。

driver = webdriver.Chrome()

chromedriver.exeにPATHが通っていない場合。

path_to_chromedriver = 'C:/usr/chromedriver.exe'
driver = webdriver.Chrome(path_to_chromederiver)

または

driver = webdriver.Chrome(executable_path = path_to_chromedriver)

ここまで実行するとchromeが立ち上がる。
画面を非表示にしたい場合は、Optionを定義しヘッドレスモードで起動する。

ヘッドレスオプションの準備

options = webdriver.ChromeOptions()
options.add_argument('--headless')

インスタンス生成

driver = webdriver.Chrome(options = options)

または

driver = webdriver.Chrome(
executable_path = path_to_chromedriver,
options = options)

URLを開く


driver.get('https://www.yahoo.co.jp/')

HTMLを取得する


html = driver.page_source

スクリーンショットを保存する。


driver.save_screenshot('screenshot.png')

javascriptを実行して、結果を得る。


page_height = driver.execure_script('return document.body.scrollHeight')

ウインドウサイズを設定する。


driver.set_window_size(1280, 800)

終了処理


driver.quit()

これでChromeが閉じる。

まとめ

ひたすらスクリーンショットを取らなくてはならないときなど便利そうだ。

同じタグの記事
同じカテゴリの記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA