是否有用于 PHP 的无头浏览器库?想要内置 JS 引擎的东西。FOSS首选。
7 回答
PhantomJS - http://phantomjs.org/
PhantomJS 是一个带有 JavaScript API 的无头 WebKit。它具有对各种 Web 标准的快速和原生支持:DOM 处理、CSS 选择器、JSON、Canvas 和 SVG。
当设置并准备好开始使用 PhantomJS 进行测试时,请选择您可以使用的各种测试框架之一。
我最近还从 tutsplus 看到了这个教程,如果它对任何人都有帮助。
它看起来相当不错,并且似乎得到了很好的支持。
编辑:
不幸的是,php 没有原生的 javascript 解释器。因此,如果您正在寻找包含 javascript 支持的纯php 实现,目前您将找不到它。对于带有 javascript 支持的 headless,您将不得不依赖后端的 node.js 或 phantomjs 之类的东西。
我相信你已经看过它们了,但对于其他有头或缺乏 javascript 支持的选项,Mink 的其他后端值得细读。
Goutte 是一个简单的 PHP 无头浏览器。https://github.com/fabpot/Goutte
不幸的是它不支持JS。
您听起来好像需要http://seleniumhq.org/,它也可以与PHPUnit一起使用来运行单元测试。
好吧,有人可以创建一个在 PHP 中运行的混蛋无头 Web 浏览器,并在 PHP 中实现对 Javascript 的支持!
使用HTMLUnit 驱动程序,它是 Selenium 项目的一部分。WebDriver 基于 Webkit(我相信),因此使用 HTMLUnit(来自 Selenium)基本上是 Java 解决方案。然后,我相信您可以从 PHP 中调用 Java 代码,尽管我不确定如何使其正常工作。
如果您不限于 PHP,或者您能够使用系统调用,请查看 xvfb,它是一个虚拟帧缓冲区,您可以使用它来运行具有完整 JS 功能的基于 Linux 的浏览器 (firefox)。您甚至可以拉入屏幕数据,并将其写入文件。
我之前在收集特定指标时已经这样做了。