维基百科 API:按时间范围获取修订
Wikipedia API: Get revisions by timeframe
我正在尝试弄清楚如何获取指定时间范围内的所有页面修订。我创建了一个 python 脚本,可以让我获得最近的 100 次修订,但我没有看到任何允许我指定时间范围的内容。我确实看到了以下参数:
rvstart: Timestamp to start listing from. (enum)
rvend: Timestamp to end listing at. (enum)
但是,我无法让这些工作。如果我输入一个作为修订时间戳存在的时间戳,但不是作为封装的任意范围,它们就会起作用。有人有什么想法吗?
这是我的脚本,如果你感兴趣的话:
import json
from wikitools import wiki, api
site = wiki.Wiki("http://en.wikipedia.org/w/api.php")
names = ["Sherrod Brown","Maria Cantwell"]
allMembers = []
for name in names:
params = {'action':'query',
'titles': name,
'prop':'revisions',
'rvprop':'ids|flags|timestamp|userid|user|size|comment|tags',
'rvlimit':'100'
}
req = api.APIRequest(site, params)
res = req.query(querycontinue=False)
allMembers.append(res)
with open('/Applications/MAMP/htdocs/python/wikipedia-1.4.0/data/wiki-leg.json', 'w') as outfile:
json.dump(allMembers, outfile, indent=2)
好的,我想我已经弄明白了。 OP 中突出显示的两个参数:
rvstart: Timestamp to start listing from. (enum)
rvend: Timestamp to end listing at. (enum)
必须结合使用:
rvdir: Direction to list in. (enum)
older: List newest revisions first (default) NOTE: rvstart/rvstartid has to be higher than rvend/rvendid
newer: List oldest revisions first NOTE: rvstart/rvstartid has to be lower than rvend/rvendid
因此,将参数更新为:
params = {'action':'query',
'titles': name,
'prop':'revisions',
'rvprop':'ids|flags|timestamp|userid|user|size|comment|tags',
'rvlimit':'100',
'rvstart':'2009-01-01T12:00:00Z',
'rvend':'2014-12-31T23:59:00Z',
'rvdir':'newer'
}
似乎达到了预期目的。
我正在尝试弄清楚如何获取指定时间范围内的所有页面修订。我创建了一个 python 脚本,可以让我获得最近的 100 次修订,但我没有看到任何允许我指定时间范围的内容。我确实看到了以下参数:
rvstart: Timestamp to start listing from. (enum)
rvend: Timestamp to end listing at. (enum)
但是,我无法让这些工作。如果我输入一个作为修订时间戳存在的时间戳,但不是作为封装的任意范围,它们就会起作用。有人有什么想法吗?
这是我的脚本,如果你感兴趣的话:
import json
from wikitools import wiki, api
site = wiki.Wiki("http://en.wikipedia.org/w/api.php")
names = ["Sherrod Brown","Maria Cantwell"]
allMembers = []
for name in names:
params = {'action':'query',
'titles': name,
'prop':'revisions',
'rvprop':'ids|flags|timestamp|userid|user|size|comment|tags',
'rvlimit':'100'
}
req = api.APIRequest(site, params)
res = req.query(querycontinue=False)
allMembers.append(res)
with open('/Applications/MAMP/htdocs/python/wikipedia-1.4.0/data/wiki-leg.json', 'w') as outfile:
json.dump(allMembers, outfile, indent=2)
好的,我想我已经弄明白了。 OP 中突出显示的两个参数:
rvstart: Timestamp to start listing from. (enum)
rvend: Timestamp to end listing at. (enum)
必须结合使用:
rvdir: Direction to list in. (enum)
older: List newest revisions first (default) NOTE: rvstart/rvstartid has to be higher than rvend/rvendid
newer: List oldest revisions first NOTE: rvstart/rvstartid has to be lower than rvend/rvendid
因此,将参数更新为:
params = {'action':'query',
'titles': name,
'prop':'revisions',
'rvprop':'ids|flags|timestamp|userid|user|size|comment|tags',
'rvlimit':'100',
'rvstart':'2009-01-01T12:00:00Z',
'rvend':'2014-12-31T23:59:00Z',
'rvdir':'newer'
}
似乎达到了预期目的。