JS の評価後にページのコンテンツが必要になるため、Selenium をスクレイパー/クローラーとして使用しています。それぞれがセレンを実行している 5 台の EC2 マシンと、私が作成したスクレーパーのインスタンスがいくつかあります。
しかし、私はいくつかの非常に奇妙な動作に気付きました。数時間後、セレンはほぼ同時にすべてのマシンで停止します。すべてのサーバーでセレンとスクレイパーを同時に開始することを考えると、セレンには長時間の後にポップアップする問題があると思われます。
セレンのログは次のとおりです。
14:34:58.628 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
14:34:58.629 INFO - Version Jetty/5.1.x
14:34:58.630 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
14:34:58.631 INFO - Started HttpContext[/selenium-server,/selenium-server]
14:34:58.631 INFO - Started HttpContext[/,/]
14:34:58.753 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@6a669053
14:34:58.753 INFO - Started HttpContext[/wd,/wd]
14:34:58.764 INFO - Started SocketListener on 0.0.0.0:4444
14:34:58.765 INFO - Started org.openqa.jetty.jetty.Server@2ef36617
21:24:41.031 INFO - Shutting down...
私が気付いたもう 1 つの興味深い点は、各クラスターで、常に 1 つのスクレーパー インスタンスで次のエラーが発生していることです。
File "SiteScraper.py", line 238, in _add_rendered_html
self.browser.get(url)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 168, in get
self.execute(Command.GET, {'url': url})
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 156, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: u'Modal dialog present'
これは、selenium または firefox (Web ドライバーで使用しているブラウザー) が一定時間後にモーダルをポップアップしていることを意味すると思います。
誰かが同様の問題/これを修正する方法についての洞察を持っていますか?