如何通过Wikipedia API获取指定时间段创建的维基百科账户?
获取指定时间段创建的Wikipedia用户随机样本的方法
Wikipedia API没有直接提供「按创建时间筛选并随机抽样用户」的功能,需要分两步实现:先抓取该时间段内的用户列表,再自行生成随机样本。
1. 抓取目标时间段的用户列表
使用query+users接口,结合创建时间参数筛选,通过分页获取全量用户:
核心请求示例(单次调用)
https://en.wikipedia.org/w/api.php?action=query&list=users&usprop=creation&uslimit=500&usstart=2010-09-09T00:00:00Z&usend=2011-02-14T23:59:59Z&format=json
参数解析:
action=query&list=users:指定调用用户列表查询接口usprop=creation:要求返回用户的创建时间属性uslimit=500:单次请求最大返回500个用户(API上限)usstart/usend:设置创建时间的UTC范围,格式必须为ISO 8601(带Z后缀)format=json:指定返回JSON格式以便后续处理
分页处理
如果返回结果包含continue字段,需提取uscontinue值添加到下一次请求中,直到没有continue字段为止,这样才能获取该时间段的所有用户。
2. 生成随机样本
API不支持直接随机抽样,需自行处理:
- 将所有有效用户(排除
missing字段为true的已删除/无效用户)存入一个列表 - 用编程语言的随机函数抽取样本,比如Python中可以用
random.sample(用户列表, 样本数量)
关键注意事项
- 遵守维基百科API的请求限制:每秒最多5次请求,避免触发封禁
- 若目标时间段用户量极大,全量抓取耗时过长,可考虑分页时逐页抽样再合并,但这种方法存在抽样偏差,需谨慎使用
- 部分用户可能是匿名账户,可根据需求通过
name字段判断(匿名用户通常以IP地址或IPv6地址命名)
内容的提问来源于stack exchange,提问作者Nathan Hart-Hodgson
相关产品推荐
相关产品推荐

