卷曲以获取有角度页面的内容

Curl to get the contents of an angular page

本文关键字:获取      更新时间:2023-09-26

我正在开发一个angular 2应用程序,我们需要使用Google Earth来运行这个应用程序。不幸的是,谷歌地球使用了一个非常古老的Chrome版本,它对Angular 2一无所知。需要一种机制来在服务器上运行angular 2应用程序,并将angular已经执行/引导的初始html响应发送到此浏览器。

我正在考虑创建一个与谷歌地球浏览器通信的PHP服务器。因此,从本质上讲,谷歌地球将从这个PHP服务器请求页面。这个PHP服务器将发出CURL请求,从Angular2应用程序中获取相应的页面,并将HTML返回到Google Earth浏览器。

但是,有一个陷阱。Curl确实从angular应用程序获得了响应,但不等待angular应用完成引导,这意味着在路由器内容填充ui视图之前,Curl会渲染其响应,而在这种情况下,它恰好是无用的,我没有得到任何有用的HTML。

我使用此链接检查CURL响应:http://onlinecurl.com/你可以选择任何有角度的网站,并使用此链接查看它给出的回复。

有没有一种方法可以让curl等待angular引导,然后返回HTML?或者有其他方法可以解决这个问题吗?

我尝试过angular universal,但它似乎太复杂了,无法实现,我有很短的时间来解决这个问题。

欢迎所有解决方案。提前谢谢。

Angular打破了语义网、最高安全模式下的Tor,以及除了呈现Web浏览器之外的任何其他类型的兼容性。因此,我建议避免使用Angular,或者如果不是这样的话,创建一个更快、更小、更兼容的镜像网站,每页提供一个html.gz文件。使用类似SeleniumIDE的东西,因为"Angular Universal"不支持window/document/jquery/etc和phantomjs&梦魇使用旧的bug代码。一个2361.07 KB的Angular页面示例可以缩减为9.7 KB的平面文件。另一种选择是,如果你只想要数据,并且你使用或可以找到具有正文HTML的XHR JSON文件,然后就可以得到它。上述示例的curl -sL 'https://api.ontario.ca/api/drupal/page%2Fjobs-and-prosperity-fund-new-economy-stream?fields=body' > body.json