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