我目前正在尝试通过cURL加载一个HTML页面,我可以检索到HTML内容,但部分内容是通过脚本(AJAX POST)后期加载的。我无法恢复HTML部分(这是一个表格)。
是否有可能完全加载页面?
谢谢您的回答。
不,你不能这样做。
CURL仅从URL下载文件 - 它不关心它是HTML、Javascript、图像、电子表格还是任何其他任意数据;它只是下载。它不运行任何东西,也不解析任何东西或显示任何东西,它只是下载。
你要求的不仅仅是这个。你需要下载,将结果解析为HTML,然后运行一些Javascript来下载其他东西,然后运行更多的Javascript将结果解析为更多的HTML并将其插入到原始HTML中。
基本上,你要找的是一个完整的Web浏览器,而不是CURL。
由于你的目标涉及“运行一些Javascript代码”,很明显没有可用的Javascript解释器是无法实现的。这意味着它显然无法在PHP程序中工作(*)。你需要超越PHP。你需要一个浏览器。
我建议的解决方案是使用一个非常专业的浏览器PhantomJS。这实际上是一个完整的Webkit浏览器,但没有用户界面。它专门用于自动化测试网站和其他类似任务。您的要求非常适合它:编写脚本使PhantomJS打开您的URL,等待表格完成渲染,并获取完成的HTML代码。