我试图写一个脚本,以获得传记的修订历史(目标是调查传记如何随时间变化)。我已经阅读了这里的大部分相关文章和关于修订版模块的文档,但我无法得到想要的结果。我发布了我的代码,其中大部分是从文档中复制的(部分或完整的)。我更改了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)
与“所有修订”相关的代码
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)
有什么建议可以让它正常工作吗?最重要的是为什么与“修订”相关的代码不返回任何内容
正如建议的那样,我希望获得特定页面的完整修订历史记录
prop
模块返回有关您提供的特定页面(或页面集)的信息list
模块返回有关页面列表的信息,在该列表中,您只提供一些抽象标准,而查找与这些标准匹配的页面是API正在做的工作的一部分(因此,在第二个示例中titles
基本上将被忽略)你没有清楚地解释你想做什么,但我猜你想得到一个特定标题的完整页面历史记录,所以你的第一个例子基本上是正确的,除了你应该设置一个更高的
rvlimit
另请参见continuing queries上的(遗憾的是不是很好)文档,因为许多页面的历史太长,无法在单个请求中返回
相关问题 更多 >
编程相关推荐