用PHP解释JavaScript

Kit*_*nde 14 javascript php screen-scraping serverside-javascript node.js

我希望能够运行JavaScript并使用PHP获得结果,并且想知道是否有一个PHP库允许我解析它.我的第一个想法是使用node.js,但由于node.js可以访问套接字,文件和东西,我认为我宁愿避免这种情况.

理由:我正在使用PHP进行屏幕抓取,并且遇到了很多场景,其中数据是由前端的JavaScript生成的,我希望避免编写专门的过滤函数来基于每个案例对JavaScript进行操作,因为花了很多时间.更一般的情况是直接解析JavaScript.

Downvoting:我真的没有看到这个问题有什么争议,现代网络爬虫已经知道了,唯一的区别是它们往往不是用PHP编写的.[1]

[1] http://blogs.forbes.com/velocity/2010/06/25/google-isnt-just-reading-your-links-its-now-running-your-code/

Ham*_*ish 5

这是一个有趣的问题,而下行选民对潜在的使用案例缺乏想象力.页面存档工具,打印脚本,预览图像 - 所有正当理由都希望使用页面中包含的JavaScript来操作文档.

我不知道任何现有的PHP实现,但你可能会将Mozilla的SpiderMonkey改编为PHP模块,或者作为操作DOMDocument并返回结果的独立工具.

我没有使用服务器端JavaScript的经验,但我认为可能需要处理一些问题:

  • 主机对象喜欢document并且window不是ECMAScript规范的一部分(这些是实现浏览器提供的对象),因此您需要确保库提供等效的主机对象.
  • 您可能在服务器端环境中执行客户端脚本时遇到安全问题.这很像允许用户提交PHP脚本进行评估,因此您需要确保安全沙箱是紧密的.

另一个(可能)更安全且更容易实现的选项可能是使用经过修改的FireFox或WebKit实例作为浏览器运行,加载目标页面并将修改后的源返回给您的应用程序.