seleniumでブラウザで開くだけで落ちる場合あります。
例えばFC2ブログのログイン画面などです。
エラーメッセージは
Traceback (most recent call last): File "***\test.py", line 179, in <module> webdv.get("読み込みたいURL") File "D:\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get self.execute(Command.GET, {'url': url}) File "D:\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "D:\python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status from unknown error: unexpected command response (Session info: chrome=104.0.5112.102)
こんな感じの物が出力されて停止されます。
そこで今回はこれを回避するために行った処理の忘備録です。
try~exceptで囲む
try: webdv.get(Path) except: pass
これでエラーで止まる事はなくなります。
リロードして504 Gateway Timeoutとかを回避
ついでにサーバーが504エラーでブラウザがサイトを正しく表示できなかった時の対処方法です。
for zzz in range(3): try: webdv.get(Path) break except: pass try: time.sleep(30) webdv.refresh() except: pass
forループで複数回させて成功したらbreak
失敗した場合に時間をおいてリロードして再度開くを繰り返すように作ってあります。