gpt4 book ai didi

ruby - 抓取 AngularJS 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:42 25 4
gpt4 key购买 nike

我正在使用 Nokogiri 使用 Rails 抓取一些 HTML 页面。

当我尝试废弃 AngularJS 页面时遇到了一些问题,因为 gem 在 HTML 完全呈现之前打开它。

有什么方法可以废弃这种类型的页面吗?如何在抓取之前完全呈现页面?

最佳答案

如果您尝试以完全通用的方式抓取 AngularJS 页面,那么您可能需要类似于@tadman 在评论中提到的东西 (PhantomJS)——某种类型的 headless 浏览器,它可以完全处理 AngularJS JavaScript 并打开 DOM 以供随后检查。

如果您有一个特定的网站或您希望抓取的网站,阻力最小的途径可能是完全避开 AngularJS 前端并直接查询 Angular 代码从中提取内容的 API。许多/大多数 AngularJS 站点的标准场景是他们拉下静态 JS 和 HTML 代码/模板,然后他们将 ajax 调用回服务器(他们自己的或某些第三方 API)以获取将要发布的内容呈现。如果您查看他们的代码,您可能会直接查询调用的任何 Angular (即通过 $http、ngResource 或 restangular)。返回数据通常是 JSON,与在渲染后的 html 结果中真正抓取相比,收集起来要容易得多。

关于ruby - 抓取 AngularJS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com