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が閉じる。
まとめ
ひたすらスクリーンショットを取らなくてはならないときなど便利そうだ。
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
コメントを残す