如何使用Wikipedia API获取维基百科中特定页面的页面统计信息?

时间:2011-03-16 09:56:55

标签: wikipedia-api

stats.grok.se工具提供维基百科中特定页面的综合浏览量统计信息。有没有办法使用维基百科api获取相同的信息?页面查看计数器属性实际意味着什么?

6 个答案:

答案 0 :(得分:14)

几天前发布了Pageview API:https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/{project}/{access}/{agent}/{article}/{granularity}/{start}/{end}

例如https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia/all-access/all-agents/Foo/daily/20151010/20151012会给你

{
  "items": [
    {
      "project": "en.wikipedia",
      "article": "Foo",
      "granularity": "daily",
      "timestamp": "2015101000",
      "access": "all-access",
      "agent": "all-agents",
      "views": 79
    },
    {
      "project": "en.wikipedia",
      "article": "Foo",
      "granularity": "daily",
      "timestamp": "2015101100",
      "access": "all-access",
      "agent": "all-agents",
      "views": 81
    }
  ]
}

答案 1 :(得分:7)

不,没有。

counter返回的prop=info属性会告诉您从服务器查看该页面的次数。它在维基百科和其他维基媒体wiki上被禁用,因为积极的鱿鱼/清漆缓存意味着只有一小部分页面视图会使它到实际服务器以影响该计数器,甚至增加数据库写入负载以更新该计数器可能会让人望而却步。

stats.grok.se工具使用来自缓存服务器的匿名日志来计算页面浏览量;原始日志文件可从http://dammit.lt/wikistats获得。如果您需要API来访问stats.grok.se中的数据,您应该联系the operator of stats.grok.se以请求创建数据。


注意这是4年前写的,后来创建了一个API(参见this answer)。但是,还没有办法通过api.php访问它。

答案 2 :(得分:3)

答案 3 :(得分:2)

您可以查看统计信息here。 有没有人经历过一些API来获取Pageview Stats? 此外,我还查看了可用的Raw Data,但找不到提取网页浏览量的解决方案。

答案 4 :(得分:1)

似乎没有任何API;但是,您可以向stats.grok.se发出HTTP请求并解析HTML或JSON结果以提取页面视图计数。

我创建了一个网站http://wikipediaviews.org,正是这样做,以便在多个月和几年内更轻松地比较多个网页。为了加快速度,并尽量减少对stats.grok.se的请求数量,我将所有过去的查询结果保存在本地。

我使用的代码位于http://github.com/vipulnaik/wikipediaviews

包含实际检索代码的文件位于https://github.com/vipulnaik/wikipediaviews/blob/master/backend/pageviewqueries.inc

function getpageviewsonline($page, $month, $language)
{
  $url = getpageviewsurl($page,$month,$language);
  $html = file_get_contents($url);
  preg_match('/(?<=\bhas been viewed)\s+\K[^\s]+/',$html,$numberofpageviews);
  return $numberofpageviews[0];
}

getpageviewsurl的代码位于https://github.com/vipulnaik/wikipediaviews/blob/master/backend/stringfunctions.inc

function getpageviewsurl($page,$month,$language)
{
  $page = str_replace(" ","_",$page);
  $page = str_replace("'","%27",$page);
  return "http://stats.grok.se/" . $language . "/" . $month . "/" . $page;
}

PS:如果指向wikipediaviews.org的链接不起作用,那是因为我最近注册了该域名。请在临时中尝试http://wikipediaviews.subwiki.org

答案 5 :(得分:1)

em .. 6年前问过这个问题。过去在官方网站上没有这样的API。

改变了。

一个简单的例子:

https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageviews&titles=Buckingham+Palace%7CBank+of+England%7CBritish+Museum

见文件:

丙=浏览量

显示每页综合浏览量数据(每个最后 pvipdays 天数的每日综合浏览量)。结果格式是页面标题(带下划线)=&gt; date(Ymd)=&gt;计数。

相关问题