19

是否有用于 PHP 的无头浏览器库?想要内置 JS 引擎的东西。FOSS首选。

4

7 回答 7

23

PhantomJS - http://phantomjs.org/

PhantomJS 是一个带有 JavaScript API 的无头 WebKit。它具有对各种 Web 标准的快速和原生支持:DOM 处理、CSS 选择器、JSON、Canvas 和 SVG。

如果你想要烘焙 你自己的.

当设置并准备好开始使用 PhantomJS 进行测试时,请选择您可以使用的各种测试框架之一。

我最近还从 tutsplus 看到了这个教程,如果它对任何人都有帮助。

于 2012-11-16T21:36:21.947 回答
7

查看mink,它支持僵尸作为后端。

它看起来相当不错,并且似乎得到了很好的支持。


编辑

不幸的是,php 没有原生的 javascript 解释器。因此,如果您正在寻找包含 javascript 支持的php 实现,目前您将找不到它。对于带有 javascript 支持的 headless,您将不得不依赖后端的 node.js 或 phantomjs 之类的东西。

我相信你已经看过它们了,但对于其他有头或缺乏 javascript 支持的选项,Mink 的其他后端值得细读。

于 2011-10-24T20:01:34.503 回答
3

Goutte 是一个简单的 PHP 无头浏览器。https://github.com/fabpot/Goutte

不幸的是它不支持JS。

于 2012-11-16T22:28:21.823 回答
3

您听起来好像需要http://seleniumhq.org/,它也可以与PHPUnit一起使用来运行单元测试。

也看看SimpleTest Browser

于 2012-11-16T21:42:34.310 回答
1

好吧,有人可以创建一个在 PHP 中运行的混蛋无头 Web 浏览器,并在 PHP 中实现对 Javascript 的支持

于 2012-11-23T13:32:41.127 回答
0

使用HTMLUnit 驱动程序,它是 Selenium 项目的一部分。WebDriver 基于 Webkit(我相信),因此使用 HTMLUnit(来自 Selenium)基本上是 Java 解决方案。然后,我相信您可以从 PHP 中调用 Java 代码,尽管我不确定如何使其正常工作。

于 2012-11-16T23:47:49.083 回答
0

如果您不限于 PHP,或者您能够使用系统调用,请查看 xvfb,它是一个虚拟帧缓冲区,您可以使用它来运行具有完整 JS 功能的基于 Linux 的浏览器 (firefox)。您甚至可以拉入屏幕数据,并将其写入文件。

我之前在收集特定指标时已经这样做了。

于 2012-11-16T21:39:38.307 回答