我希望能够运行 JavaScript 并使用 PHP 获得结果,并且想知道是否有一个 PHP 库可以让我将其解析出来。我的第一个想法是使用 node.js,但由于 node.js 可以访问套接字、文件和其他东西,我想我宁愿避免这种情况。
理由:我正在使用 PHP 进行屏幕抓取,并且遇到了许多前端由 JavaScript 生成数据的场景,我想避免编写专门的过滤函数来执行操作JavaScript 基于每个案例,因为这需要很多时间。更一般的情况是直接解析 JavaScript。
否决:我真的不明白这个问题有什么争议,现代网络爬虫都知道这样做,唯一的区别是它们往往不是用 PHP 编写的。 [1]
最佳答案
这是一个有趣的问题,反对者对潜在的用例缺乏想象力。页面归档工具、打印脚本、预览图像 - 所有想要使用页面中包含的 JavaScript 操作文档的正当理由。
我不知道有任何现有的 PHP 实现,但您可能会适应 Mozilla 的 SpiderMonkey作为 PHP 模块,或作为操作 DOMDocument 并返回结果的独立工具。
我没有使用服务器端 JavaScript 的经验,但我认为可能需要处理一些问题:
document
和window
等宿主对象不是 ECMAScript 规范的一部分(这些是实现浏览器提供的对象),因此您需要确保库提供等效的宿主对象。- 在服务器端环境中执行客户端脚本时可能会遇到安全问题。这很像允许用户提交一个 PHP 脚本进行评估,所以你需要确保安全沙箱是严密的。
另一个(也许)更安全和更容易实现的选项可能是使用作为浏览器运行的修改后的 FireFox 或 WebKit 实例,加载目标页面并将修改后的源返回到您的应用程序。
关于php - 在 PHP 中解释 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4331938/