質問: webdriver.Chrome(options=options) print('open browser:{}s'.format(datetime.datetime.now().timestamp() - start)) browser.get('https://www.rakuten.co.jp/') print('open top page:{}s'.format(datetime.datetime.now().timestamp() - start)) browser.close() browser.quit() print('close browser:{}s'.format(datetime.datetime.now().timestamp() - start)) ``` バージョン情報 ------- * Python:3.6.8 * Chrome:79.0.3945.130 * ChromeDriver:79.0.3945.36 わかっていること -------- Windowsローカル上でヘッドレスを付けずに起動すると、およそ以下の時間がかかりました。 * ブラウザ起動:5.68秒 * TOPページ表示:9.92秒(TOPページ表示だけにかかっているのは4.24秒) ヘッドレスをつけてWindowsで起動すると * ブラウザ起動:5.38秒 * TOPページ表示:22.94秒 ヘッドレスをつけてLinuxで起動すると * ブラウザ起動:2.16秒 * TOPページ表示:20.03秒 知りたいこと ------ 最終的にはディスプレイがないLinux環境でヘッドレスで動作させたいので、ヘッドレスで高速に動作させる必要があります。 環境によらず遅いということで、起動パラメータ等で回避させる必要があると考えていますが、なにか情報があればお願いします。 気になるのは例えば動的に切り替えている画像などの要素が読み込まれるまでgetが待っているのでは?という部分です。 特定の要素だけアクセスできればそれでいいので、画像を読み込まない、といった対策ができればいいのではないかなと考えています。
回答: OptionのUAを設定することで解決。 参考:headless chromeをPythonのseleniumから動かして引数を考えた (Ubuntu 16.04) 他に有効そうなものはあったが、決定的に速度を変えたのはUAの設定。 適当な文字列でも設定すれば早くなった。 ``` options.add_argument('--user-agent=hogehoge') ``` おそらくはUAを判定してデザインを調整するタイプのサイトに置いてUAの確認がタイムアウトになるようなケースで発生していたのでは?と思われる。 ヘッドレスにするとUAが消えるというのは勉強になった。