我正在用PHP获取带有cURL的页面。一切工作正常,但是我正在获取页面的某些部分,这些部分是在页面加载后用JavaScript计算的。在完成JavaScript计算之前,cURL已经将页面的源发送回了我的PHP脚本,从而导致错误的最终结果。该站点上的计算结果是由AJAX获取的,因此我无法轻松地重现该计算结果。另外,我无权访问目标页面的代码,因此无法调整该目标页面以适应我的(cURL)提取需求。

有什么办法可以让cURL等待所有动态流量完成?由于某些JavaScript不断将数据发送回另一个域,这可能会导致长时间挂起,因此这可能很棘手。但是至少我可以测试一下,是否至少可以返回正确的结果。

Safari中的“我的开发人员”工具栏指示该页面在1.57秒内完成。也许我也可以告诉cURL静态等待2秒吗?

我想知道可能性是什么:)

最佳答案

cURL不执行任何JavaScript或下载文档中引用的任何文件。因此,cURL并不是解决您问题的方法。

您必须使用服务器端的浏览器,告诉它加载页面,等待X秒钟,然后要求它提供HTML。

看一下:http://phantomjs.org/(您需要使用node.js,我不知道任何PHP解决方案)。

关于php - 有没有办法让cURL等待页面的动态更新完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14625915/

10-12 14:24
查看更多