selenium
目次
Selenium
- ブラウザー自動化を可能にし、それを支えるツール群とライブラリー群プロジェクト
- 下記言語で使用可能
- Java
- Python
- C#
- Ruby
- JavaScript
- Kotlin
主なオプションまとめ
Python | About | |
---|---|---|
ヘッドレス | –headless | ブラウザを立ち上げず実行する |
ミュート | –mute-audio | ミュートにする |
サンドボックス | –no-sandbox | サンドボックスを使用しない |
/dev/shm | –disable-dev-shm-usage | /dev/shm を使用しない |
–disable-gpu | とりあえず付けとけとか | |
–disable-web-security | ||
–user-data-dir | ||
–allow-running-insecure-content |
- 参考の「List of Chromium Command Line Switches」にて多く紹介されている
サンドボックス
- サンドボックスとは、外部から受け取ったプログラムを保護された領域で動作させることによって、システムが不正に操作されるのを防ぐセキュリティ機構のこと
- Chrome(Chromium)ではセキュリティ上の理由で、レンダリングやスクリプトエンジンはSandboxというchrootで隔離された環境で動かされる
- そのため、Chromeの自動操作にはサンドボックスを無効化しなければならない
- ローカルでは不要だったりする
/dev/shm
/dev/shm
を使わないようにしないと、メモリが少ない環境だと食いつぶされて死ぬ可能性がある
Exclude the collection
- まだよくわからないので、ひとまずPythonで
option.add_experimental_option('excludeSwitches', ['enable-logging', 'enable-automation'])
オプション | 概要 |
---|---|
enable-logging | コマンドラインにログが出ない |
enable-automation | 自動なんちゃらによって保護されています的なやつ無効 |
ウィンドウ最大化
driver.maximize_window()
スクリーンショット
driver.save_screenshot('test.png')
フルページ
w = driver.execute_script('return document.body.scrollWidth') h = driver.execute_script('return document.body.scrollHeight') driver.set_window_size(w, h)
Tips
Googleにログイン
- Googleはスクレイピングを禁止しており、自動実行できないそう
- 外部サービスにてログインすることで回避できる
- StackOverflowなどが使える
- 機械の認証がある可能性もあるが、待ちを入れると解消できる?
- オプションで解決できた事例もある
DevToolsActivePort file doesn't exist
- headlessを付けたら治ります
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
参照
- Seleniumドキュメント
- Seleniumブラウザー自動化プロジェクト
- 2020/11/20
- List of Chromium Command Line Switches
- Peter Beverloo
- 2021/05/26
- SeleniumでDevToolsActivePort file doesn't exist
- イッサイガッサイ
- 2021/05/07
- Webアプリ組み込み目的でSelenium WebDriver + Headless Chromium/Firefoxを使うときの雑多な知見
- さかな前線
- 2021/02/04
selenium.txt · 最終更新: 2021/06/15 22:55 by 127.0.0.1