【发布时间】:2021-02-26 11:15:57
【问题描述】:
我正在尝试编写一个脚本来获取传记的修订历史(目标是调查传记如何随时间变化)。我已经阅读了这里的大部分相关文章以及关于 revision 模块的文档,但我无法得到我想要的结果。我发布了我的代码,其中大部分是从文档中复制的(部分或完整)。我更改了 titles 参数中的值。
此外,我发现了 allrevisions 子模块。我让它返回特定传记的修订,但我得到的与某人在页面上找到的修订历史无关。
与“修订”相关的代码
import requests
S = requests.session()
URL = "https://www.mediawiki.org/w/api.php"
PARAMS = {
"action": "query",
"prop": "revisions",
"titles": "Albert Einstein",
"rvprop": "timestamp|user|content",
"rvslots": "main",
"formatversion": "2",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
与“allrevisions”相关的代码
URL = "https://www.mediawiki.org/w/api.php"
PARAMS = {
"action": "query",
"list": "allrevisions",
"titles": "Albert Einstein",
"arvprop": "user|timestamp|content",
"arvslots": "main",
"arvstart": "2020-11-12T12:06:00Z",
"formatversion": "2",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
有什么建议可以让它正常工作吗?最重要的是为什么与“修订”相关的代码没有返回任何内容。
按照建议,我想获取特定页面的完整修订历史记录。
【问题讨论】:
-
答案是在第一个代码上用这个“en.wikipedia.org//w/api.php”改变这个“mediawiki.org/w/api.php”。并按照@Tgr 的建议添加
rvlimit参数。
标签: python mediawiki-api revision-history