pythonからchromeを操作する。
pythonでseleniumライブラリを利用することで、
ChromeやFirefoxを操作できるようだ。
Windows環境で試してみた。
pipでseleniumドライバーをインストール
1 | 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をインポート。
1 | from selenium import webdriver |
webdriverのインスタンスを生成する。
1 2 3 4 5 6 7 | <h1>chromedriver.exeにPATHが通っている場合。</h1> driver = webdriver.Chrome() <h1>chromedriver.exeにPATHが通っていない場合。</h1> path_to_chromedriver = 'C:/usr/chromedriver.exe' driver = webdriver.Chrome(path_to_chromederiver) <h1>または</h1> driver = webdriver.Chrome(executable_path = path_to_chromedriver) |
ここまで実行するとchromeが立ち上がる。
画面を非表示にしたい場合は、Optionを定義しヘッドレスモードで起動する。
1 2 3 4 5 6 7 8 9 | <h1>ヘッドレスオプションの準備</h1> options = webdriver.ChromeOptions() options.add_argument('--headless') <h1>インスタンス生成</h1> driver = webdriver.Chrome(options = options) <h1>または</h1> driver = webdriver.Chrome( executable_path = path_to_chromedriver, options = options) |
URLを開く
1 | driver.get('https://www.yahoo.co.jp/') |
HTMLを取得する
1 | html = driver.page_source |
スクリーンショットを保存する。
1 | driver.save_screenshot('screenshot.png') |
javascriptを実行して、結果を得る。
1 | page_height = driver.execure_script('return document.body.scrollHeight') |
ウインドウサイズを設定する。
1 | driver.set_window_size(1280, 800) |
終了処理
1 | 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に変換
同じカテゴリの記事