0

我有一个使用 Javascript 从另一个站点提取 HTML 的小脚本。

我想包含在 PHP 页面中提取的静态 HTML,而没有 任何Javascript 代码出现在最终显示的 PHP 页面中。

我尝试在 PHP 页面中使用 Javascript 代码包含文件,但它只包含实际的 Javascript,而不是 Javascript 的结果

那么我该怎么做呢?

4

3 回答 3

1

您需要获取页面,在其中执行 JavaScript,然后从生成的 DOM 中提取您想要的数据。

通常的方法是使用 Web 自动化工具,例如Selenium

于 2012-07-10T12:25:54.810 回答
0

你根本做不到。

您需要了解 PHP 和 Javascript 在不同的地方运行,PHP 在服务器上,而 Javascript 在客户端上。

您唯一的解决方案是更改所有这些完成的方式并使用 PHP 中的“file_get_contents(url)”来获取与您的 javascript 过去获取的相同内容。这样,不再有 javascript,您仍然可以使用远程内容预处理您的页面。

于 2012-07-10T12:27:05.690 回答
0

您无法直接在 PHP 中执行此操作,因为您需要运行 Javascript 代码。

我建议将 URL(以及任何所需的操作,如点击事件等)传递给无头浏览器,如PhantomZombie,并在 JS 引擎完成工作后从中捕获 DOM。

您也可以使用真正的浏览器,但当然您不需要 UI,而且它实际上可能会妨碍您尝试执行的操作,因此无头浏览器可能会更好。

这种事情通常用于站点的自动化测试(即功能测试)。

有一个名为Mink的 PHP 工具可以在 PHP 程序中运行这些类型的脚本。它旨在编写测试脚本,但我想您可以将其用于您的目的。

希望有帮助。

于 2012-07-10T12:31:05.463 回答