【发布时间】:2015-11-10 22:04:52
【问题描述】:
我有一个 AngularJS 应用程序,它当前使用 http.get 从 API 获取 JSON 数据。这很好用。
我想知道是否可以传递static webpage URL,并使用来自http.get 的响应来抓取结果?
我已经看过关于使用 Node 和 JavaScript 库(如 ScraperJS)进行网络抓取的教程,但我无法在 Angular(客户端)应用程序中成功使用它们。有没有在 Angular 中使用 JavaScript 网页抓取库?
【问题讨论】:
-
我认为您在这样做时可能会遇到许多安全问题。你有理由不想在服务器上这样做吗?
-
无需设置自己的服务器端代码即可抓取 HTML 的最简洁方法之一是将 YQL 与 XPath 条件语句一起使用。这可以返回 JSON 数据或 XML,然后可以在客户端进行操作。
-
@sideroxylon 你能详细说明一下吗?也许是一个示例代码?
-
@Xsmael 我已经有一段时间没有看到这个了,但首先你需要设置一个这样的查询:
query = 'select * from html WHERE url = "[target site]" AND xpath = "[xpath query]";。然后创建一个请求 URL,如下所示:url = ''http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(query) + '&format=xml'。然后放在一起:$.getJSON(url + '&callback=?', function (data) {。看看你在data中得到了什么。只要确保你的 xpath 查询正确。更多HERE
标签: javascript angularjs