PHP无头浏览器?

时间:2011-07-05 05:07:26

标签: php browser headless-browser javascript-engine

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

7 个答案:

答案 0 :(得分:20)

PhantomJS - http://phantomjs.org/

  

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

如果您想要php-PhantomjsRunner ,可以将其与 bake your own (现已弃用)结合使用。

设置好并准备开始使用PhantomJS进行测试时,请选择其中一种 Testing Frameworks

我最近还遇到了 this tutorial from tutsplus ,如果它可以帮助任何人。

答案 1 :(得分:7)

结帐mink并支持zombie作为后端。

它看起来非常好,似乎得到了很好的支持。


修改

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

我相信你已经看过它们了,但是对于其他选项或者缺少javascript支持,Mink's other backends值得一试。

答案 2 :(得分:3)

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

另请查看SimpleTest Browser

答案 3 :(得分:3)

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

不幸的是,它不支持JS。

答案 4 :(得分:2)

好吧,有人可以创建一个用PHP运行的混蛋无头网络浏览器,完成 Javascript support implemented in PHP

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

使用HTMLUnit driver,它是Selenium项目的一部分。 WebDriver基于Webkit(我相信),所以使用HTMLUnit(来自Selenium)基本上就是Java解决方案。然后,我相信你可以从PHP调用Java代码,虽然我不确定这些工作的细节是什么。