del*_*nco 12 python selenium google-chrome selenium-chromedriver selenium-webdriver
我想在我的服务器上使用selenium构建我的爬虫.
因此我在我的Ubuntu17.10服务器上安装/下载了所需的依赖项 - 例如chromedriver,chromium-browser等
但是,当我运行以下代码时:
driver = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
---------------------------------------------------------------------------
WebDriverException Traceback (most recent call last)
<ipython-input-14-2cdab8938403> in <module>()
----> 1 driver = webdriver.Chrome()
/home/zachary/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options)
66 service_args=service_args,
67 log_path=service_log_path)
---> 68 self.service.start()
69
70 try:
/home/zachary/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py in start(self)
96 count = 0
97 while True:
---> 98 self.assert_process_still_running()
99 if self.is_connectable():
100 break
/home/zachary/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py in assert_process_still_running(self)
109 raise WebDriverException(
110 'Service %s unexpectedly exited. Status code was: %s'
--> 111 % (self.path, return_code)
112 )
113
WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 127
Run Code Online (Sandbox Code Playgroud)
这是什么意思,它很兴奋..?
我无法得到该错误代码的初衷以及从何处开始修复它.
这看起来非常罕见.
也许相关:
我在桌面上安装了ubuntu desktop 17.10,但未能启动GUI启动.因此我只使用终端,但它到目前为止工作良好.我已经从我的mac到服务器桌面安装了ssh和远程控制jupyter笔记本,这些错误来自它.希望此信息与解决此错误相关,否则将中止.
TPP*_*PPZ 19
它似乎chromedriver需要一些额外的库.这解决了我的问题:
apt-get install -y libglib2.0-0=2.50.3-2 \
libnss3=2:3.26.2-1.1+deb9u1 \
libgconf-2-4=3.2.6-4+b1 \
libfontconfig1=2.11.0-6.7+b1
Run Code Online (Sandbox Code Playgroud)
我正在使用docker容器而不是没有X/GUI的服务器/ VM进行类似的设置.
为了确定需要哪些依赖项,我尝试迭代地从命令行运行它,如下所示:/opt/chromedriver/2.33/chromedriver --version一遍又一遍.
然后在eache时间,我使用了类似命令,apt-cache search <STUFF>并apt-cache madison <STUFF>找出2.33 deb所需的软件包的确切版本chromedriver(在我的情况下,但我想类似的东西适用于任何版本chromedriver).
Hie*_*ieu 10
在我的VPS上使用selenium/chromedriver时遇到了同样的错误.我安装chromium-browser了,问题就消失了.
sudo apt-get install -y chromium-browser
Run Code Online (Sandbox Code Playgroud)
也许它不是chromium-browser必需的,但包装也随之安装.但是,这是一个快速解决方案.
小智 7
我有一个类似的问题,但事实证明我的问题是错误地设置了指向已删除文件夹的 service_log_path。
webdriver.Chrome(executable_path='/path/to/chromedriver', service_log_path='/path/to/existing/folder')
Run Code Online (Sandbox Code Playgroud)
运行此命令进行故障排除:(./chromedriver您的 chrome 驱动程序二进制文件所在的位置)。
您可能会看到如下错误:
./chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
为了解决这个错误,只需运行:sudo apt-get install libnss3。
然后再次检查,看看这次是否有效:./chromedriver。
其他一些包也可能丢失。这是一个详尽的清单:
gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
您可能不需要所有这些,但上面可能列出了您需要的那些。
使用Selenium v3.11.0、ChromeDriver v2.36和Chrome v64.x时,您必须从ChromeDriver - WebDriver for Chrome下载最新的ChromeDriver并将其放入您的系统中。接下来,在初始化WebDriver和WebBrowser时,您必须传递参数以及 ChromeDriver 的绝对路径,如下所示:executable_path
from selenium import webdriver
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get("http://www.python.org")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26454 次 |
| 最近记录: |