【问题标题】:Web scraping in AngularJS applicationAngularJS 应用程序中的网页抓取
【发布时间】: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


【解决方案1】:

没有直接的方法可以这样做,因为这与 Angular 完全无关。客户端 JavaScript 就是这样。它在客户端上运行。您需要做的是对请求 URL 进行 HTTP 调用并从站点检索 HTML,然后解析该 HTML 以获得各种元数据。这需要通过对站点的服务器端调用来完成,以从远程站点加载数据。

【讨论】:

    猜你喜欢
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2018-05-30
    • 1970-01-01
    相关资源
    最近更新 更多