You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Wikipedia API查询特定时间的维基百科历史分类及版本数据

解答

按指定日期查询文章版本的可行性

完全可以实现。MediaWiki API 提供了原生的时间筛选参数,你可以通过 prop=revisions 模块搭配时间参数,查询任意日期或时间段对应的文章修订版本:

  • 如需查询某个时间点的最新文章版本,将目标时间转换为 ISO 8601 格式的 UTC 时间戳,传入 rvstart 参数,同时设置 rvlimit=1、rvdir=older,即可拿到该时间点前最近的有效修订版本。
  • 如需查询时间段内的所有版本,设置 rvstart 为时间段起始时间、rvend 为结束时间即可。

获取2015年1月法语维基前500个分类的实现调整

官方 allcategories 接口仅支持查询当前站点的分类数据,没有直接的历史快照参数,你可以通过指定分类命名空间+时间筛选的方式实现,调整后的代码如下:

import requests as rq
from datetime import datetime

S = rq.Session()
url = "https://fr.wikipedia.org/w/api.php"

# 目标时间设为2015年1月1日0点(UTC时间),可按需调整为1月内任意时间
target_timestamp = datetime(2015, 1, 1, 0, 0, 0).isoformat() + "Z"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "allpages",
    "apnamespace": 14, # 维基百科分类页面对应的命名空间编号为14
    "aplimit": 500,
    "apfilterredir": "nonredirects", # 过滤掉分类重定向页面
    "rvstart": target_timestamp,
    "rvdir": "older",
    "rvlimit": 1
}

R = S.get(url=url, params=PARAMS)
DATA = R.json()

如果需要保留你原逻辑里的「分类下条目数≥100」的过滤条件,可以在拿到分类列表后,逐个请求对应分类页在目标时间点的修订内容,提取当时的分类成员数做二次过滤即可。

内容的提问来源于stack exchange,提问作者lableue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:36:04