mediawiki API を使用してウィキペディア ページのリビジョン数を取得する方法を知っている人はいますか? この API ドキュメントを読みましたが、関連する API が見つかりません:
リビジョン API
2736 次
4 に答える
9
唯一の可能性は、すべてのリビジョンを取得してカウントすることです。そのためには、クエリを続行する必要がある場合があります。
バグ 17993はカウントを含めることに関するものですが、まだ解決されていません。
于 2012-09-24T19:36:57.143 に答える
4
ページ (この場合はJSON wiki ページ) のリビジョン数を取得するコードは次のとおりです。
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
(対応するウィキペディア ページのサイドバーからアクセス可能: ツール - ページ情報)
于 2016-11-20T21:27:32.730 に答える
2
リビジョンを取得し、それらをカウントするメソッドを実装します (これは単なる 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>
于 2012-09-24T19:55:00.000 に答える