1

我正在尝试用 PHP 编写程序,它将下载和解析 html 源代码。问题是,当我尝试下载由 js 生成的 html 时。
函数 onload() 完成后是否有机会下载文件?

谢谢

4

1 回答 1

3

这不是一项简单的任务,因为 Javascript 是必须由浏览器解释的实际活动代码。您从服务器获得的是实际的 HTML,而 javascript 所做的所有事情都在客户端,完全不受为您提供网页的服务器的控制。您通常无法通过静态分析来解决这个问题(即通过查看代码而不实际执行它来猜测会发生什么)。可靠地做到这一点的唯一方法是实际执行 javascript。

话虽如此,您可能不想从头开始编写自己的 javascript 解释器。那里有“无头”实现,它们有一个 javascript 解释器,就像浏览器一样,但不会在屏幕上显示它 - 它在虚拟 DOM 上执行所有操作。尝试查看PhantomJS

编辑 看到这个问题,基本上有人会按照你的要求去做。我认为它应该适用于你的情况。

我不知道任何“纯” php 解决方案,但您可以轻松地使用 php 自动运行脚本。如果由于任何原因您需要保留 PHP,那么我会搜索“无头 DOM 渲染器”。

于 2013-06-11T17:51:38.630 回答