MediaWiki API修订版与所有修订版

2024-09-30 03:26:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个脚本,以获得传记的修订历史(目标是调查传记如何随时间变化)。我已经阅读了这里的大部分相关文章和关于修订版模块的文档,但我无法得到想要的结果。我发布了我的代码,其中大部分是从文档中复制的(部分或完整的)。我更改了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)

有什么建议可以让它正常工作吗?最重要的是为什么与“修订”相关的代码不返回任何内容

正如建议的那样,我希望获得特定页面的完整修订历史记录


Tags: 模块代码文档httpsjsonurldatawww
1条回答
网友
1楼 · 发布于 2024-09-30 03:26:10

prop模块返回有关您提供的特定页面(或页面集)的信息list模块返回有关页面列表的信息,在该列表中,您只提供一些抽象标准,而查找与这些标准匹配的页面是API正在做的工作的一部分(因此,在第二个示例中titles基本上将被忽略)

你没有清楚地解释你想做什么,但我猜你想得到一个特定标题的完整页面历史记录,所以你的第一个例子基本上是正确的,除了你应该设置一个更高的rvlimit

另请参见continuing queries上的(遗憾的是不是很好)文档,因为许多页面的历史太长,无法在单个请求中返回

相关问题 更多 >

    热门问题