使用Curl或其他方法检索完全呈现的页面?

Jos*_*ong 5 javascript php curl

有没有办法从javascript后期渲染的页面中检索完全渲染的html?如果我使用curl,它只是检索基本的html,但缺少iframe的后期呈现,javascript处理等.

实现这一目标的最佳方法是什么?

Rob*_*bie 3

由于没有其他人回答(除了上面的补充,但我稍后会谈到)我会尽力提供帮助。

没有“简单”的答案。PHP 无法本地处理 javascript/导航 DOM,因此您需要可以的东西。

我认为你的选择:

  1. 如果您需要屏幕抓取(这正是我所希望的,因为您也希望加载 Flash),我建议您使用现有的商业 API 之一来执行此操作。您可以在此列表中找到一些http://www.programmableweb.com/apitag/?q=thumbnail,例如http://www.programmableweb.com/api/convertapi-web2image

  2. 否则,您需要自己运行一些可以处理服务器上或连接到服务器的 Javascript 和 DOM 的程序。为此,您需要一个可以在服务器端运行并获取所需信息的自动化浏览器。按照上面 Bergi 评论中的列表,您需要测试一个合适的解决方案 - 主要的一个 Selinium 非常适合在已知网站上进行“单元测试”,但我不确定如何编写脚本来处理随机例如,网站。由于您(大概)只有一个“自动浏览器”,并且您不知道加载每个页面需要多长时间,因此您需要对请求进行排队并一次处理一个。您还需要确保处理弹出警报(),安装所有第三方库(您说您想要闪存?!),处理重定向,超时和潜在的内存占用(如果不停地运行这个,您会定期想要终止您的浏览器并重新启动它以清理内存!)。还可以处理病毒攻击、弹出窗口和完全关闭浏览器的请求。

  3. 第三,VB 有一个网络浏览器组件。很久以前,我在一个项目中使用它来做类似的事情,但是在一个已知的网站上。.NET 是否可能(对我来说,这是一个巨大的安全风险),以及如何针对未知情况(例如弹出窗口和 Flash)进行编程,我不知道。但如果您感到绝望,富有冒险精神的 .NET 开发人员也许可以提供更多建议。

总之 - 如果您想要的不仅仅是屏幕抓取并且可以选择选项 1,祝您好运;)