使用 Wikipedia API 获取特定时间范围内阅读次数最多的文章?

Posted

技术标签:

【中文标题】使用 Wikipedia API 获取特定时间范围内阅读次数最多的文章?【英文标题】:Use Wikipedia API to get the most read articles within a certain time range? 【发布时间】:2017-06-04 15:18:34 【问题描述】:

给定一些整数 n 和日期 d,我想使用 Wikipedia API 获取在 d 和当前日期之间的时间段内查看次数最多的文章 n。这可能吗?如果可以,怎么做?

到目前为止我尝试过的如下:

    使用 https://wikimedia.org/api/rest_v1/metrics/pageviews/top/en.wikipedia/all-access/2017/05/01 。这种方法的问题在于,首先,它似乎只支持n = 1000 之外的其他值,其次,它仅聚合一天而不是任意时间范围的视图。

    使用query 操作和列表allpages(即https://en.wikipedia.org/w/api.php?action=query&format=json&list=allpages)来获取所有文章,但我不知道如何过滤结果,只包含查看次数最多的文章。

我还检查了https://stats.wikimedia.org/,但没有发现任何有用的信息。

【问题讨论】:

你是否曾经为这个问题找到一个可行的解决方案(时间范围内的前 N ​​篇文章)? 很遗憾,没有。 【参考方案1】:

目前似乎无法通过 Pageviews API 使用此功能。您可以找到给定日期或给定月份的浏览次数最多的文章,但不能在任意时间范围内查找。有关可用的不同选项,请参阅REST API docs,另请参阅Pageviews API page on Wikitech,它提供了一个示例,用于查找给定月份中浏览次数最多的文章。 (有点令人担忧的是,API 文档页面上似乎没有记录每月查看次数最多的文章语法。)

您还可以通过 Action API (api.php) 获取综合浏览量数据,正如 Tgr 在下面的评论中所说,但数据与 REST API 相同。

您可能想在维基媒体开发人员观看的wikitech-l email list 上提问。他们将能够告诉您这是否可以通过其他方式来实现,如果不可行,为什么该功能不可用。

【讨论】:

页面浏览数据可通过prop=pageviews/list=mostviewed/meta=siteviews 在操作 API 中获得,但这只是对 REST API 数据的修正。 谢谢!我应该在回答之前检查那部分,因为我调查 WMF 页面浏览量已经有一段时间了。我已经编辑了我的答案以减少错误。 :)

以上是关于使用 Wikipedia API 获取特定时间范围内阅读次数最多的文章?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Wikipedia的API获取Wikipedia内容?

使用 Wikipedia API 获取图像 URL,但有些图像不返回 URL,为啥?

无法从 Wikipedia API 获取数据

如何从 Wikipedia API 获取标题和摘要列表?

在特定日期范围内获取结果[关闭]

使用wikimedia api分别获取所有部分