我正在尝试用PHP编写程序,它将下载并解析html源代码。问题是,当我尝试下载由js生成的html时 函数onload()完成后是否有机会下载文件?
由于
答案 0 :(得分:3)
这不是一项微不足道的任务,因为Javascript是必须由浏览器解释的实际活动代码。你从服务器获得的是实际的HTML,javascript所做的所有事情都在客户端,而且完全不在给你网页的服务器手中。一般情况下,静态分析无法解决这个问题(即通过查看代码而不实际执行代码来猜测会发生什么)。可靠地执行此操作的唯一方法是实际执行javascript。
话虽这么说,你可能不想从头开始编写自己的javascript解释器。有“无头”实现,有一个javascript解释器就像浏览器一样,但没有在屏幕上显示它 - 它完成虚拟DOM上的所有操作。尝试查看PhantomJS。
编辑请参阅this question,其中某人基本上按照您的要求行事。我认为它应该按原样运作。
我不知道任何“纯粹的”php解决方案,但您可以轻松地使用php自动运行脚本。如果您因任何原因需要保留PHP,那么“无头DOM渲染器”就是我要搜索的内容。