stats.grok.se 工具提供维基百科中特定页面的浏览量统计信息。有没有一种方法可以使用 wikipedia api 来获取相同的信息?页面浏览量计数器属性实际上是什么意思?
6 回答
几天前发布了 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/?doc#/
- https://wikitech.wikimedia.org/wiki/Analytics/AQS/Pageview_API
{
"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
}
]
}
不,那里没有。
从返回的counter
属性prop=info
将告诉您从服务器查看页面的次数。它在 Wikipedia 和其他 Wikimedia wiki 上被禁用,因为激进的 squid/varnish 缓存意味着只有一小部分页面视图会到达实际服务器以影响该计数器,即使这样,更新该计数器的数据库写入负载也会增加可能会令人望而却步。
stats.grok.se 工具使用来自缓存服务器的匿名日志来计算页面浏览量;原始日志文件可从http://dammit.lt/wikistats 获得。如果您需要 API 来访问 stats.grok.se 中的数据,您应该联系stats.grok.se 的运营商以请求创建一个。
请注意,这是 4 年前编写的,此后创建了一个 API(请参阅此答案)。不过,目前还没有一种方法可以通过 api.php 访问它。
像这样获取过去 30 天的每日 JSON
似乎没有任何 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 。
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天的每日浏览量)。结果格式为页面标题(带下划线)=> 日期(Ymd)=> 计数。