文件获取内容PHP


File get contents PHP

我有一个小脚本,我正在收集一个URL的HTML。这工作得很好,它带回了HTML。问题是,这个url在页面加载后渲染一些div,所以当我在浏览器中打开它时,我可以看到这些div,但不是当我使用curl或文件获取内容时。这个问题的解决方案是什么?

No。您没有可靠的机会通过php运行javascript。但是,您可以在调试器中嗅探ajax请求并获取url。把他们也带走。您只需要创建自己的解析器

这个url正在呈现一些div

这没有任何语义意义。url是一些数据的地址,其中可能包括代码和对其他url的引用。URL不"渲染"任何东西。

如果你的意思是URL引用的页面呈现div -这更有意义。

可能是服务器根据请求头提供了不同的内容(例如user-agent或cookies)。也可能是从页面中调用的javascript正在将额外的内容呈现到HTML中。

要找出哪个,只需在浏览器中禁用javascript。如果div仍然呈现,那么服务器正在根据用户代理交付不同的内容-您只需要在请求中设置用户代理。

如果内容是通过javascript添加的,那么使用PHP实现它将是一个很大的任务。

您可能有可能使用一些javascript解释器与下载的页面。可以在命令行上使用Rhino shell(您可以通过system()shell_exec()在php中执行此命令)。

它似乎虽然,你可能有一个艰难的时间解析html和提供Rhino只是在该页面的javascript(我没有看到任何选项来解析html文件),但肯定有其他的js解释器,也许有一个适合你的需要:维基百科页面上的js引擎