任何人都知道如何使用mediawiki API獲取維基百科頁面的修訂數量? 我已閱讀本API文檔,但無法找到相關的API:
Revision API維基百科API:如何獲取頁面修訂的數量?
7
A
回答
7
唯一的可能性是檢索所有修訂並計數。您可能需要continue the query。
Bug 17993是關於包括計數,但仍未解決。
1
檢索修訂並實現一個方法來計數它們(它只是XML)。
api.php ? action=query & prop=revisions & titles=API|Main%20Page & rvprop=timestamp|user|comment|content
。
<api>
<query>
<pages>
<page pageid="1191" ns="0" title="API">
<revisions>
<rev user="Harryboyles" timestamp="2006-10-31T05:39:01Z" comment="revert unexplained change: see talk ...">
...content...
</rev>
</revisions>
</page>
<page pageid="11105676" ns="0" title="Main Page">
<revisions>
<rev user="Ryan Postlethwaite" timestamp="2007-06-26T19:05:06Z" comment="rv - what was that for?">
...content...
</rev>
</revisions>
</page>
</pages>
1
下面是代碼來獲得頁面的版本數(在這種情況下,JSON wiki page):
import requests
BASE_URL = "http://en.wikipedia.org/w/api.php"
TITLE = 'JSON'
parameters = { 'action': 'query',
'format': 'json',
'continue': '',
'titles': TITLE,
'prop': 'revisions',
'rvprop': 'ids|userid',
'rvlimit': 'max'}
wp_call = requests.get(BASE_URL, params=parameters)
response = wp_call.json()
total_revisions = 0
while True:
wp_call = requests.get(BASE_URL, params=parameters)
response = wp_call.json()
for page_id in response['query']['pages']:
total_revisions += len(response['query']['pages'][page_id]['revisions'])
if 'continue' in response:
parameters['continue'] = response['continue']['continue']
parameters['rvcontinue'] = response['continue']['rvcontinue']
else:
break
print parameters['titles'], total_revisions
您可以檢查這裏的結果:https://en.wikipedia.org/w/index.php?title=JSON&action=info#Edit_history
(可從相應的維基百科頁面側欄訪問:工具 - 頁面信息)
相關問題
- 1. 從維基百科頁面獲取xml
- 2. 如何從維基百科獲取文章修訂歷史
- 3. 從維基百科/維基媒體修訂頁面提取更改
- 4. 維基百科API獲取數據
- 5. 如何使用維基百科API從維基百科上的類別頁面獲取所有子類別?
- 6. 如何從維基百科頁面獲取表格數據?
- 7. 如何通過API提取維基百科頁面WikiTables?
- 8. 如何獲取維基百科頁面的HTML源代碼?
- 9. 維基百科API
- 10. 如何獲取維基百科API所有返回頁面的摘錄?
- 11. 如何獲取維基百科頁面的HTML內容文本(通過Wikipedia API)?
- 12. 查詢維基百科數據頁面
- 13. 如何獲取某些維基百科頁面引用的所有頁面?
- 14. 如何獲得維基百科頁面的子集?
- 15. 如何獲得多語言的維基百科頁面?
- 16. 如何使用維基百科的API
- 17. 如何使用維基百科的API
- 18. 維基百科頁面的子類別
- 19. 如何使用維基百科的API獲取Wikipedia內容?
- 20. 如何通過API獲取維基百科文章長度?
- 21. 如何使用維基百科API獲取出生地點
- 22. 獲取維基百科頁面查看統計信息
- 23. 獲取維基百科頁面鏈接,不含模板鏈接
- 24. 如何從維基百科頁面刮取第一段?
- 25. 如何提取和導入維基百科頁面?
- 26. 刮和解析維基百科頁面
- 27. 與維基百科頁面捲曲php
- 28. python3解析和維基百科頁面
- 29. Python維基百科API。計數函數
- 30. PHP +維基百科:從維基百科文章的第一段獲取內容?
這是獲取修訂數量的非常昂貴的方式。你正在請求很多數據(頁面內容,編輯摘要),你只是扔掉了。 – Mark