Bất cứ ai cũng biết cách lấy số phiên bản của trang wikipedia bằng cách sử dụng API mediawiki? Tôi đã đọc tài liệu API này, nhưng không thể tìm thấy API liên quan:
Revision APIAPI của Wikipedia: làm thế nào để có được số lần sửa đổi của một trang?
7
A
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).
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
Đâ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)
Đâ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