文件获取内容PHP

文件获取内容PHP

问题描述:

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

+1

没有简单的解决方案。据我了解,该页面使用JavaScript呈现附加内容/ ajax /类似的东西为了让你获得那些内容,你需要有效地实现javascript/ajax解析器/引擎。 –

+0

你可以参考一些文档吗? – Ismail

+0

我认为这不可行。类似这样的事情需要数月和数十个开发人员用C++编写代码。 PHP的实现是不合理的。 –

不,你没有可靠的机会来运行JavaScript通过php。但是,您可以在调试器中嗅探Ajax请求,并让它们获取它们。你只需要创建自己的解析器

这个网址被渲染一些div

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

如果您的意思是URL引用的页面呈现div,那会更有意义。

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

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

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

你可能会使用一些JavaScript解释器与下载页面的可能性。这是可能的在命令行中使用Rhino shell(你可以在PHP通过system()shell_exec()执行此。

看来,虽然你可能很难有时间解析HTML并在页面饲养犀牛刚刚的JavaScript(我没有看到任何解析html文件的选项),但确定有其他js解释器,也许一个适合您的需求:wikipedia page on JS engines