如何通过Wikipedia API获取特定日期的维基百科文章版本?
获取指定日期维基百科条目版本的正确方法
要精准获取维基百科条目在指定日期的版本,核心方案是使用MediaWiki核心API(而非REST API),它支持直接按日期筛选修订记录,能高效定位到目标日期对应的最新版本,具体步骤如下:
1. 定位目标日期的最新修订ID
调用MediaWiki API的query接口,传入以下关键参数:
titles:目标条目名称(比如Jupiter)prop=revisions:指定获取修订记录rvend:设置为目标日期的次日零点(例如要找2022年1月1日的版本,设为2022-01-02T00:00:00Z),确保返回的是目标日期及之前的最后一次修订rvlimit=1:只返回1条结果(即最新的符合条件的修订)rvdir=newer:按时间正序筛选,确保拿到的是目标日期前的最后一次修订rvprop=ids|timestamp:返回修订ID和时间戳,用于验证匹配度
示例请求参数(以Jupiter条目为例):
api.php?action=query&titles=Jupiter&prop=revisions&rvend=2022-01-02T00:00:00Z&rvlimit=1&rvdir=newer&rvprop=ids|timestamp
2. 获取该修订版本的内容
拿到修订ID后,有两种方式获取内容:
- API方式:在上述请求基础上添加
rvprop=content,直接返回条目的原始内容;或单独调用query接口,用revids参数指定修订ID获取内容。 - 页面方式:构造条目链接时带上
oldid参数,即可直接打开对应版本的页面。
方案优势
- 支持精确日期筛选,无需分页遍历大量历史记录,解决了REST API无法按日期筛选的问题;
- 速率限制更友好,遵循默认请求频率规则(每秒最多5次)即可稳定批量查询多篇条目;
- 可一次性完成修订定位与内容获取,操作效率远高于手动爬虫或分页遍历。
手动操作补充
如果是单条目手动查询,除了历史页面,还可在条目页面的「查看历史」旁使用「查看旧版本」功能,直接输入目标日期快速定位到对应版本。
内容的提问来源于stack exchange,提问作者DeanAttali
相关产品推荐
相关产品推荐

