【发布时间】:2016-07-18 19:22:20
【问题描述】:
我想在运行 Raspbian 的 Raspberry Pi 上使用 Selenium WebDriver 和 PhantomJS 作为无头浏览器运行 Python 脚本。
我最初在 OS X 中编写脚本,它运行良好。但是在尝试让它在 Raspberry 上运行时,我遇到了问题。
尝试运行脚本时,我收到此错误:
raise WebDriverException("Can not connect to the Service %s" % self.path)
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /usr/bin/phantomjs
脚本的简要版本:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36")
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent
serv_args = ["--ignore-ssl-errors=false", "--ssl-protocol=tlsv1",
"--disk-cache=false"]
driver = webdriver.PhantomJS(executable_path="/usr/bin/phantomjs",
desired_capabilities = dcap, service_arguments = serv_args, port=65000)
我看到其他人遇到与我类似的问题 - 有不同的解决方案 - 大多数似乎涉及自己构建 PhantomJS,或者克隆并安装适用于 Raspberry 的 Github 分支(现在与 PhantomJS 主项目不同步) .
问题
- 有谁知道如何解决这个问题——以及问题的真正原因是什么?
- 如果解决方案涉及手动将二进制文件安装到
/usr/local/bin等,我该怎么做? PhantomJS webpage 上可用的二进制文件适用于linux-x86和linux-i686,所以我假设它们不适用于 Raspberry Pi 2 B ARM Cortex A-7 处理器。李> - 我也尝试根据这些instructions 自己构建 PhantomJS,但过程在中途冻结。 Raspberry 也不符合推荐的构建硬件要求。
背景资料
- 我正在使用
Python 2.7.9 - 我创建了一个
virtualenv并在其中安装了所有Python 模块;例如pip install selenium,并尝试在此处运行脚本 - 我已经通过
sudo apt-get install phantomjs安装了最新版本的 PhantomJS - 我在测试时禁用了
ufw防火墙
【问题讨论】:
-
输入
locate phantomjs一旦你找到它移动它到/usr/bin?您可能需要在运行locate之前运行sudo updatedb...并且您可能需要 apt-get install 它所属的任何软件包 ... -
@JoranBeasley Locate 给出以下输出:pastebin.com/BBG2wgF0
-
你试过这个stackoverflow.com/questions/18916123/…(基本上是重新安装node和phantomjs)
-
版本是 1.4,需要 x11 或 vfvb,我实际上遇到了一个与无法连接到 X 服务器有关的错误,我目前正在从源代码编译,到目前为止有一些问题但回来了再次编译,所以我看看能不能把它排序,在 pi 上需要几个小时,所以明天会告诉你。
-
我读到最近人们使用更多的无头 chrome 和 firefox stackoverflow.com/questions/49172172/…
标签: python linux selenium raspberry-pi phantomjs