【问题标题】:Is it possible to use Selenium WebDriver to drive PhantomJS?是否可以使用 Selenium WebDriver 来驱动 PhantomJS?
【发布时间】:2012-06-28 21:51:53
【问题描述】:

我正在浏览 Selenium WebDriver 的文档,例如它可以驱动 Chrome。我在想,“驱动” PhantomJS 不是更有效率吗?

有没有办法在 PhantomJS 中使用 Selenium?

我的预期用途是网页抓取:我抓取的网站加载了 AJAX 和许多可爱的 JavaScript,我认为这种设置可以很好地替代我目前正在使用的 Scrapy Python 框架。

【问题讨论】:

  • 我注意到有一个内部类 PhantomJSDriver : RemoteWebDriver, ITakesScreenshot 但你不能创建它的实例(还)

标签: selenium web-scraping webdriver phantomjs


【解决方案1】:

PhantomJS 现在包含 GhostDriver project。

还建议您直接使用 PhantomJS 或使用方便的库,例如 CasperJS。 CasperJS 专门设计用于轻松对网页执行顺序操作,非常适合许多自动化任务。

免责声明:我是 PhantomJS 的作者。

编辑:正如尼克的回答中所述,GhostDriver 现在包含在 PhantomJS 中。

【讨论】:

  • 哇,Ariya 回复了,前几天我在读你的一些东西,我真的很佩服你的工作。无论如何,这太棒了,如果您不介意,将 PhantomJS/CasperJS 合并到应用程序中的最佳方式是什么。我正在考虑使用 Selenium,因为我希望整个程序不断循环和运行(它是实时的,并且具有轻微的交互性)当我浏览 Phantom 文档时,我得到的印象是它是一个一次性使用的命令行工具,并从python 可以让我把它变成一个完整的程序。有什么建议吗?
  • 您可以从很多 PhantomJS 用户文章中获得一些灵感(查看 wiki)。
  • 维基是空的。有什么线索可以帮助我使用 PHP 进行这项工作吗?
  • @Joseph:关于“一次性使用”问题,我也遇到了这个问题并为此创建了 PhearJS (github.com/Tomtomgo/phearjs)。它包装了一个 PhantomJS 实例池,并为您提供了一个 API。
【解决方案2】:

@Joseph,因为 1.8 版本的 GhostDriver 包含在 PhantomJS 的稳定版本中。这是确切的发行说明:http://phantomjs.org/release-1.8.html。 您可以简单地启动 PhantomJS 进程来监听某个端口,如下所示:

phantomjs --webdriver=PORT

感谢@detro 和 PhantomJS 团队的出色工作!

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2017-05-30
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2019-12-25
    • 2013-10-16
    相关资源
    最近更新 更多