【发布时间】:2018-02-21 22:43:01
【问题描述】:
我正在使用 selenium 和 chrome webdriver 从网站上抓取 pdf。我使用以下内容,从列表中拉出site:
driver.get(site)
source = driver.page_source
...
...
driver.quit()
但我不断收到以下错误,我的site 列表中有大约 6,000 个观察结果:
Traceback (most recent call last):
File "<stdin>", line 127, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 323, in get self.execute(Command.GET, {'url': url})
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout
(Session info: chrome=63.0.3239.84)
(Driver info: chromedriver=2.33.506092
(733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.10.0-40-generic x86_64)
我尝试过以更短的时间间隔刷新源页面(每 200 次搜索,但我应该更短吗?)。
如何延长 selenium 的 120 秒超时限制?
【问题讨论】:
-
通常
timeout发生在您尝试导航到页面并且页面在允许的时间内没有响应时。请分享您的 代码 和您正在抓取的页面的 HTML 或 URL,以便有人可以放心地回答。当timeout发生时,我对您要达到的目标感到有些困惑。 -
我猜
driver.set_page_load_timeout(121)是这样做的方法。 -
这是否需要 JS 调用,或者您可以通过 HTTP 请求获取您想要的内容?如果是这样,它们将为您节省大量时间。
标签: python selenium selenium-webdriver selenium-chromedriver