- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经使用 Selenium 和 PhantomJS 在 Python 中设置了一个简单的网络抓取脚本。我总共有大约 200 个 URL 需要抓取。该脚本起初运行良好,然后在大约 20-30 个 URL 之后(它可能更多/更少,因为它在失败时看起来是随机的并且与任何特定 URL 无关)我在 python 中收到以下错误:
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to GhostDriver'
还有我的 ghostdriver.log:
PhantomJS is launching GhostDriver...
[ERROR - 2014-07-04T17:27:37.519Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140692115795456,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]}
我已经搜索过,关于 SO 的大多数问题似乎是他们甚至不能运行单个 URL。我发现在脚本中间发生错误的唯一其他问题是 this one,答案是将 phantomjs 升级到最新版本,我已经完成了。另一个答案只是说再次尝试该 URL,这似乎不是一个好的解决方案,因为该 URL 可能会再次失败。
我在 Python 2.7.6 上的 Linux Mint 17 上运行 phantomjs 1.9.7 版和 selenium 2.42.1 版
for url in ['example.com/1/', 'example.com/2/', 'example.com/3/', .. , ..]:
user_agent = 'Chrome'
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap['phantomjs.page.settings.userAgent'] = user_agent
driver = webdriver.PhantomJS(executable_path='/usr/bin/phantomjs', desired_capabilities=dcap)
driver.get(url)
最佳答案
我遇到了同样的问题来修复它我从源代码安装了 phantomjs。
For Linux (Debian):
sudo apt-get update
sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev libxft-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
./build.sh
For Mac os:
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
./build.sh
对于其他系统,请查看以下链接 http://phantomjs.org/build.html
Optional :
cd bin
chmod +x phantomjs
cp phantomjs /usr/bin/
我想通了,因为当我阅读我的 ghostdriver.log 文件时,它说。
[ERROR - 2014-09-04T19:33:30.842Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140145669488128,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]}
我确信一定有一些丢失的文件,它必须用于某些边缘情况。所以我决定从源代码构建它现在工作正常。
关于python - Selenium 无法连接到 GhostDriver(但只是有时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24578879/
我正在尝试使用 phantomjs、ghostdriver 和 Protractor 在我的笔记本电脑上运行 e2e 测试。我运行以下命令: phantomjs --webdriver=5000 gu
我有一个单元测试,当我通过 python manage.py test 运行它时它通过了,但是当我从 PyCharm 中运行它时失败了。 def test_alpha(self): from
问题很简单,但一些上下文可能会有所帮助。 我正在尝试在使用 selenium 和 phantomjs 作为下载器时部署scrapy。但问题是它在尝试部署时一直说权限被拒绝。所以我想改变ghostdri
我正在尝试使用 phantomJS 和 Ghostdriver 截取页面的屏幕截图。 这是我的代码: import java.io.File; import java.net.URL; import
我正在尝试使用 PhantomJS 作为 PHPUnit Selenium 测试的浏览器。 我已将 Selenium 设置为以网格模式运行,并使用 webdriver 启动 phantomjs,并将其
我正在尝试使用 PhantomJS 和 GhostDriver for Java 从 eclipse IDE 运行一个简单的 GoogleSuggest 示例,但是它没有通过 Xpath 找到任何元素
这个问题在这里已经有了答案: Selenium/PhantomJS raises error (4 个答案) 关闭 7 年前。 我正在运行一个包含 selenium 组件的代码,它需要 phanto
在我使用 GhostDriver (PhantomJS) 对 Selenium 进行的第一个非常简单的测试中,测试通过了,但 PhantomJS.exe 没有退出。我在 Windows 7、Phant
我正在使用 PhantomJS 和 Selenium 抓取网站。我的问题是,在检查了大约 50 个 URL 后,我出现了一个错误: selenium.common.exceptions.WebDriv
我在基于 Java 的项目中使用 GhostDriver 作为 WebDriver 实现。我想拍摄页面的快照。默认页面大小有点尴尬,所以我想控制快照的页面大小。但是,我找不到来自谷歌的任何例子。那么,
我已经使用 Selenium 和 PhantomJS 在 Python 中设置了一个简单的网络抓取脚本。我总共有大约 200 个 URL 需要抓取。该脚本起初运行良好,然后在大约 20-30 个 UR
我正在尝试使用 Java、PhantomJS 和 GhostDriver 截取一些 Twitter 页面的屏幕截图,但我一直得到带有模式对话框(注册模式或 cockies 模式)的屏幕截图。 有人可以
很长一段时间以来,我一直试图让 PhantomJS ( 1.9.7 )/GhostDriver 使用一些自定义设置进行初始化,但完全没有成功。我正在使用 wd.js 作为我的 WebDriver 库,
我尝试在java中隐藏控制台和GhostDriver的日志... - Windows 7. - JDK is in 1.7.0_75 version. - PhantomJS 1.9.7 is inc
我想在特定页面的 PhantomJSDriver 中禁用 JavaScript,但是 this link here说这是不可能的,因为“整个 GhostDriver 将变得不可用”。 谁能解释一下,我
我正在使用 PhantomJs Ghostdriver 和 Java 截取一些网页的屏幕截图。我的问题是 PhantomJs 使用主机的语言环境,所以我需要设置默认语言。我找到了如何为 Chrome
问题:GhostDriver API 尚不支持警报处理。目前有一个可接受的解决方法,即将您自己的 javascript 注入(inject)页面,该页面将处理警报并为您存储它的文本。 我在通过 pyt
我目前有一个 Rails 应用程序,它使用 rspec 和 watir-webdriver 进行集成测试。我想在 headless 浏览器中运行我的集成测试(为了速度目的)。由于我的开发是在 mac
我们正在选择我们的 headless 浏览器 驱动程序解决方案,它将是 Selenium WebDriver 的一些实现。 有GhostDriver ,它利用 PhantomJS在一侧的后端和 Htm
如何清除 PhantomJS + GhostDriver + Selenium WebDriver + WebDriver 客户端系统中每个测试的 cookie? 我的测试过程如下: 以集线器角色启动
我是一名优秀的程序员,十分优秀!