文件获取内容PHP

时间:2011-09-28 10:19:20

标签: php curl

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

3 个答案:

答案 0 :(得分:1)

没有。你没有可靠的机会通过PHP运行JavaScript。但是,您可以在调试器中嗅探ajax请求并获取URL和;得到他们。您只需要创建自己的解析器

答案 1 :(得分:0)

  

这个网址正在渲染一些DIV

这没有任何语义意义。 url是某些数据的地址 - 可能包含代码和对其他URL的引用。该URL不会“呈现”任何内容。

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

服务器可能正在根据请求标头(例如用户代理或cookie)提供不同的内容。或者可能是从页面调用的javascript正在将其他内容呈现到HTML中。

要找出哪个,只需在浏览器中禁用javascript即可。如果div仍然呈现,那么服务器将根据用户代理提供不同的内容 - 您只需在请求中伪造用户代理。

OTOH如果通过javascript添加内容,那么使用PHP实现这一点将是一项艰巨的任务。

答案 2 :(得分:0)

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

看起来你可能很难解析html并只给那个页面中的javascript提供Rhino(我没有看到解析html文件的任何选项),但是确定还有其他js解释器,也许还有一个适合您的需求:wikipedia page on JS engines