2014-03-03 96 views
2

我其实不想列出每个编辑,但只能得到它的数量。如何从API获取给定wikipedia页面的总编辑数量?

此数据可用于在链接左侧面板上的每一篇文章:

https://en.wikipedia.org/w/index.php?title=Wikipedia&action=info 

但是,这会产生完整的网页有桌子,格式化等及其详尽对维基百科的服务器。所以我问,是否有办法只获得这些少数号码,并忽略整个网站的搜刮。

回答

2

可能不是你想要的,但没有一种方式来获得这些信息yet.

作为一种变通方法,您可以使用prop=revisions让所有的修订促成了文章的答案。你将能够指望从这里rev标签:

 
http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Wikipedia&prop=revisions&rvprop=ids&rvlimit=max

或者,你可以问YQL用下面的命令来算它为您:

SELECT * FROM xml 
WHERE url="http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Wikipedia&prop=revisions&rvprop=ids&rvlimit=max" 
AND itemPath="/api/query/pages/page/revisions/rev" 

示例输出(Link to full output)

{ 
    "query": { 
     "count": 500, //This is the total amount of edits 
     "created": "2014-03-04T02:29:42Z", 
     "lang": "en-US", 
     "results": { 
      "rev": [{ 
       "parentid": "597995345", 
       "revid": "598005528" 
      }, { 
       "parentid": "597994174", 
       "revid": "597995345" 
      }, { 
       "parentid": "597891867", 
       "revid": "597994174" 
      }] 
     } 
    } 
} 

不幸的是,用户检索修订版本数据的upper limit500,而机器人则是5000

要得到确切的计数,您必须在您的服务器上设置解析器,以便在用户查询您的数据时从信息页捕获确切的计数。

+1

对于单个请求的限制是,您可以使用'query-continue'和多个请求获得总计数。 – svick

相关问题