使用 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内容?