Python Selenium Geckodriver 连接被拒绝
Python Selenium Geckodriver Connection refused
我花了几个小时试图让 Selenium 与 Python 一起工作,但运气不好
这个错误信息
selenium.common.exceptions.WebDriverException: Message: connection refused
这是我用过的例子:-
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.python.org')
browser.close()
这是我安装的依赖
apt-get install -y xorg xvfb dbus-x11 xfonts-100dpi xfonts-75dpi xfonts-cyrillic
这是/root/geckodriver.log
输出
1493938773101 geckodriver INFO Listening on 127.0.0.1:40876
1493938774156 geckodriver::marionette INFO Starting browser
/usr/lib/firefox/firefox.sh with args ["-marionette"] (firefox:3128):
GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count >
0' failed
我 运行 Selenium 在 Ubuntu 14.04 64-bit
VPS 具有 128MB RAM 的远程服务器上
我不知道是什么让 Selenium 无法与 Chrome 和 Firefox 的浏览器驱动程序通信。
好吧,我放弃了 Geckodriver
,我使用 PhantomJS
作为我的网络驱动程序。
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.PhantomJS()
driver.get('http://www.python.org')
html_source = driver.page_source
print ("html_source:",html_source)
driver.quit()
以下是我用来安装 PhantomJS 的步骤:
cd ~
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar xvjf $PHANTOM_JS.tar.bz2
mv $PHANTOM_JS /usr/local/share
ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
Python Selenium
apt-get install python-pip -y
pip uninstall pyvirtualdisplay
apt-get install x11vnc xvfb fluxbox
Xvfb :99 -ac
xvfb-run -a python 99.py
pip uninstall selenium
pip install selenium==2.53.1
请先检查您的 "firefox" 浏览器版本。
我发现它在某些时候非常混乱。我使用的是 Raspbian,用 apt-get 下载的 "Iceweasel" 是 Firefox 52 版本,它不适用于 geckodriver 0.19(这个需要 Firefox 55 或更高版本)。
对我有用的是下载 geckorvider v0.16 并解决了问题。
此外,您可能不需要 xorg 来使其工作,我需要的唯一软件包是 xfvb 和 iceweasel。
我花了几个小时试图让 Selenium 与 Python 一起工作,但运气不好
这个错误信息
selenium.common.exceptions.WebDriverException: Message: connection refused
这是我用过的例子:-
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.python.org')
browser.close()
这是我安装的依赖
apt-get install -y xorg xvfb dbus-x11 xfonts-100dpi xfonts-75dpi xfonts-cyrillic
这是/root/geckodriver.log
输出
1493938773101 geckodriver INFO Listening on 127.0.0.1:40876 1493938774156 geckodriver::marionette INFO Starting browser /usr/lib/firefox/firefox.sh with args ["-marionette"] (firefox:3128): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed
我 运行 Selenium 在 Ubuntu 14.04 64-bit
VPS 具有 128MB RAM 的远程服务器上
我不知道是什么让 Selenium 无法与 Chrome 和 Firefox 的浏览器驱动程序通信。
好吧,我放弃了 Geckodriver
,我使用 PhantomJS
作为我的网络驱动程序。
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.PhantomJS()
driver.get('http://www.python.org')
html_source = driver.page_source
print ("html_source:",html_source)
driver.quit()
以下是我用来安装 PhantomJS 的步骤:
cd ~
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar xvjf $PHANTOM_JS.tar.bz2
mv $PHANTOM_JS /usr/local/share
ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
Python Selenium
apt-get install python-pip -y
pip uninstall pyvirtualdisplay
apt-get install x11vnc xvfb fluxbox
Xvfb :99 -ac
xvfb-run -a python 99.py
pip uninstall selenium
pip install selenium==2.53.1
请先检查您的 "firefox" 浏览器版本。
我发现它在某些时候非常混乱。我使用的是 Raspbian,用 apt-get 下载的 "Iceweasel" 是 Firefox 52 版本,它不适用于 geckodriver 0.19(这个需要 Firefox 55 或更高版本)。
对我有用的是下载 geckorvider v0.16 并解决了问题。
此外,您可能不需要 xorg 来使其工作,我需要的唯一软件包是 xfvb 和 iceweasel。