2014-03-03 132 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

相關問題