如何访问维基数据修订历史?能否以Q214204为例通过SPARQL/API获取时间戳
嘿,我来帮你搞定这个问题!
访问维基数据条目修订历史的基础方法
如果只是想通过网页查看,操作很简单:打开Eden Hazard的维基数据条目(Q214204),找到页面上的「历史」标签(英文界面显示为"History"),点击进去就能看到所有修订记录,每条记录都会显示时间戳、编辑者、修改内容摘要等信息。
通过SPARQL获取最早与最新修订时间戳
维基数据的SPARQL查询端点可以直接帮你提取时间范围,以下是针对Q214204的查询示例,你可以把这段代码复制到维基数据SPARQL编辑器里运行:
SELECT ?earliestRev ?latestRev WHERE { wd:Q214204 schema:revision ?rev . ?rev schema:dateModified ?revDate . } GROUP BY wd:Q214204 BIND(MIN(?revDate) AS ?earliestRev) BIND(MAX(?revDate) AS ?latestRev)
这个查询会遍历Q214204的所有修订记录,用MIN()和MAX()函数分别筛选出最早和最晚的修改时间戳,结果会以ISO 8601标准格式返回(比如2013-01-05T14:22:17Z这类格式)。
通过维基媒体API获取最早与最新修订时间戳
你也可以直接调用维基媒体API来获取这两个时间戳,操作灵活且高效:
获取最新修订时间戳
用这个请求(可以直接在浏览器地址栏打开,或者用curl、Postman等工具发起请求):
https://www.wikidata.org/w/api.php?action=query&prop=revisions&titles=Q214204&rvlimit=1&rvdir=newest&format=json
返回的JSON结果里,revisions数组下的timestamp字段就是最新的修订时间戳。
获取最早修订时间戳
只需要把请求里的rvdir参数改成oldest就行:
https://www.wikidata.org/w/api.php?action=query&prop=revisions&titles=Q214204&rvlimit=1&rvdir=oldest&format=json
同样,revisions里的timestamp就是最早的修订时间。
简单解释下关键参数:
action=query:告诉API要执行查询操作prop=revisions:指定要获取条目修订数据titles=Q214204:明确目标条目是Eden Hazard的维基数据IDrvlimit=1:只返回1条结果(避免获取所有修订记录浪费资源)rvdir:控制排序方向,newest取最新,oldest取最早
内容的提问来源于stack exchange,提问作者user5721551
相关产品推荐
相关产品推荐

