Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MediaWiki API修订版与所有修订版_Python_Mediawiki Api_Revision History - Fatal编程技术网

Python MediaWiki API修订版与所有修订版

Python MediaWiki API修订版与所有修订版,python,mediawiki-api,revision-history,Python,Mediawiki Api,Revision History,我试图写一个脚本,以获得传记的修订历史(目标是调查传记如何随时间变化)。我已经阅读了这里的大部分相关文章和关于修订版模块的文档,但我无法得到想要的结果。我发布了我的代码,其中大部分是从文档中复制的(部分或完整的)。我更改了titles参数中的值 此外,我还找到了allrevisions子模块。我这样做是为了返回特定传记的修订版本,但我得到的与某人在页面上找到的修订历史无关 与“修订”相关的代码 与“所有修订”相关的代码 有什么建议可以让它正常工作吗?最重要的是为什么与“修订”相关的代码不返回任何

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

此外,我还找到了allrevisions子模块。我这样做是为了返回特定传记的修订版本,但我得到的与某人在页面上找到的修订历史无关

与“修订”相关的代码

与“所有修订”相关的代码

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


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

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

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


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

不幸的是,“rvlimit”没有改变任何内容。如果我将“Albert Einstein”更改为“Python”,则在同一代码上也会起作用。确实如此:在上面的代码中,如果我添加“rvlimit”参数,它甚至不会在响应中返回“revisions”。答案是,在第一个代码中用“this”更改此“with this”。并按照@Tgr建议添加
rvlimit
param。
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)