【问题标题】:How to Find The Link for JSON Data of a Certain Website如何找到某个网站的 JSON 数据的链接
【发布时间】:2020-07-30 02:40:14
【问题描述】:

我刚刚完成了关于如何开发一个使用 JSON 数据从博客中检索更新帖子的 Android 应用程序的教程。

用于检索帖子的 JSON 数据的链接是以“/api/get_recent_summary”结尾的博客名称

如何找到不同网站的 JSON 数据的链接?

例如时代杂志的网站 http://time.com

【问题讨论】:

  • 每个网站都没有强制性的 JSON 数据源。尽管如此,还是有一些技巧——更多信息请访问en.wikipedia.org/wiki/Web_scraping
  • @KenanZahirovic,我怎么知道一个网站提供 JSON 数据源?
  • AFAIK,你不能确定。没有通用的解决方案。

标签: android json


【解决方案1】:

最快最简单的方法是在 Google Chrome 中使用 google 开发者工具

1st 转到 google 开发者工具。 F12Ctrl+Shift+Itop right Ellipsis->More Tools->Developer Tools

第二次点击“Network”标签。

第三次点击“XHR”子标签。 XHR(XMLHttpRequest)

如果站点使用 json,它将在 XHR 子选项卡下列出。您可以搜索不同的返回对象,选择一个并使用“预览”子子选项卡进行查看。

查看 JSON

查看 JSON 网址

虽然上述方法是最简单的,但它并不是获取所需信息的最稳定方法。许多网站在没有任何通知的情况下更改返回数据。这可能会破坏您的应用程序...

我认为您正在寻找的是 API应用程序编程接口)。大多数 Web API 返回 jsonxml。您应该首先搜索要从中获取 json 数据的特定站点的 api 文档。具有公共 api 源的站点的示例文档是 github apiyoutub api。其中许多都需要身份验证才能获得所需的 json 响应,但文档应该会向您展示如何做到这一点。

使用合法的网络 API 是最稳定的方法。这意味着您的应用程序由于提要更改、网址更改而一直随机中断的可能性较小......我希望这会有所帮助!

【讨论】:

  • 这部分回答了我同样的问题,但是一旦确定它使用的是 JSON,有没有办法下载使用的 JSON 存档/文本文件?
  • @S.Redrum 你问的是如何找到 JSON 文件的链接,或者如何实际下载链接的内容?
  • 我认为它给出了相同的结果,我需要的是获取适用于我的数据或文件的 JSON 的完整存档。就我而言,我找不到 .json 文件,因为没有请求 URL,而是 POST 到网址。
  • @S.Redrum 那么你已经有一个 URL 了吗? URL 不需要以.json 结尾。我知道 android Java 和 Kotlin 都有进行 REST 调用的方式。有很多关于如何做到这一点的例子。 how to post in Android 还有很多其他的例子。如果您使用不同的编程语言,简单的搜索会返回很多答案...
  • 我看到页面 POST 到另一个页面,这个页面执行被 firefox/chrome 拦截的 XHR 调用并加载相同的页面以及在网格中显示的查找数据。我应该怎么做才能访问整个 JSON 数据和/或下载它?
【解决方案2】:

我知道这是一个较老的问题,但我觉得有必要插话。如果您的目标是简单地确定一个站点是否使用 JSON 进行数据交换,那么解决方案 proposed by Tim 是一个非常好的解决方案。但是,如果您希望从任意站点抓取数据,则无法保证该站点使用 JSON 作为数据交换,如 @KenanZahirovic 所述。有许多网站不这样做。相反,他们将数据嵌入到 HTML 中,或使用 XML 或其他方法将内容发送到客户端。没有标准的方法,这就是数据抓取如此困难的原因。它需要弄清楚数据是如何传输的并为此构建一个客户端。

对于需要从多个来源收集数据的场景,由于来源之间的细微差别,您最终可能会拥有多个客户端。 This site 解释了一些数据抓取的最佳实践。但是,这可能需要服务器端应用程序。拥有一个收集数据并将其存储在数据库中的服务器端应用程序对于这种情况最有意义。通过这种方式,您可以获得一致的 API,客户端可以通过该 API 访问数据。

已经提出了一个algorithm,它可以相当自信地抓取许多网站。如果您只想拥有一个客户,这可能是也可能不是最好的方法。这完全取决于您希望客户进行多少处理。如果可能,请尝试将处理负载转移到服务器。

这个答案可能比要求的要多,但是,我再次觉得有必要插话。我相信前面的答案就足够了。我确实建议您将答案标记为已接受的答案。

祝你好运!

【讨论】:

  • 您好,我只需要下载json存档的全部内容,无论是文本文件还是其他格式,以防万一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多