2011-08-21 16 views

Trả lời

7

Khả năng duy nhất là để lấy tất cả các phiên bản và đếm chúng. Bạn có thể cần phải continue the query cho điều đó.

Bug 17993 là về việc tính số, nhưng vẫn chưa được giải quyết.

1

Truy xuất các bản sửa đổi và triển khai phương pháp đếm chúng (chỉ là XML).

MediaWiki Revisions: Example

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> 

+0

Đây là một cách rất tốn kém để có được số lần sửa đổi. Bạn đang yêu cầu rất nhiều dữ liệu (nội dung trang, chỉnh sửa tóm tắt) mà bạn chỉ cần vứt bỏ. – Mark

1

Đây là mã để có được số phiên bản của một trang (trong trường hợp này, 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 

Bạn có thể kiểm tra kết quả ở đây: https://en.wikipedia.org/w/index.php?title=JSON&action=info#Edit_history

(có thể truy cập từ thanh bên của trang wikipedia tương ứng: Công cụ - Thông tin trang)