问题描述
美好的一天。我是网络抓取自动化的新手,刚刚开始对包碎片进行一些测试。 我的工作环境如下:
- 操作系统:Ubuntu20.04(在 Windows10 上,没有 gui)
- IDE:VScode
- 语言:Python
- 包:splinter 0.14.0
from splinter import browser
executable_path = {"executable_path" : r'/usr/local/bin/chromedriver'}
browser = browser(driver_name = 'chrome',**executable_path,headless =True)
browser.visit('https://www.google.com')
print(browser.title)
# return Google
browser.quit()
但是,当我尝试使用其他一些网站(例如 https://tw.yahoo.com/?p=us)时,系统卡住了 一段时间后返回如下错误信息:
File "/home/stevetsaoch/Tradebot/main.py",line 23,in <module>
browser.visit('https://tw.yahoo.com/?p=us')
File "/home/stevetsaoch/.local/lib/python3.8/site-packages/splinter/driver/webdriver/__init__.py",line 287,in visit
self.driver.get(url)
File "/home/stevetsaoch/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py",line 333,in get
self.execute(Command.GET,{'url': url})
File "/home/stevetsaoch/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py",line 321,in execute
self.error_handler.check_response(response)
File "/home/stevetsaoch/.local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py",line 242,in check_response
raise exception_class(message,screen,stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 299.850
(Session info: headless chrome=87.0.4280.141)
据我所知,上面的消息表明我的 chrome 无法找到 https://tw.yahoo.com/?p=us,并且在搜索默认时间段后返回超时错误。顺便说一句,我同时在 Windows 上用我的 chrome 检查了 https://tw.yahoo.com/?p=us,它在很短的时间内做出响应。 对这种情况有什么建议吗?任何建议或意见表示赞赏。
解决方法
我做了一些研究并得到了答案。 我忘了设置 Xvfb 库。在我的 bash 中运行代码后,如下所示:
Xvfb :99 -ac
export DISPLAY=:99
问题解决了!