使用Wikimedia API获取指定维基百科页面对应的Wikimedia Commons分类
通过Wikimedia API获取对应Commons分类的实现方法
你可以直接通过Wikidata的结构化数据实现需求,比解析页面侧边栏效率更高、稳定性更强,具体步骤如下:
- 第一步:获取目标维基百科页面对应的Wikidata ID
调用对应语言维基的MediaWikiquery接口,传入prop=pageprops参数即可拿到关联的Wikidata QID,示例请求参数:action=query&titles=你的页面标题&prop=pageprops&format=json
返回结果中pageprops.wikibase_item字段的值就是对应的Wikidata ID。 - 第二步:查询Wikidata条目绑定的Commons分类属性
调用Wikidata的wbgetentities接口,传入拿到的QID,查询P373(Commons分类)属性即可,示例请求参数:action=wbgetentities&ids=你拿到的QID&props=claims&format=json
若返回结果中存在claims.P373字段,取第一个声明的mainsnak.datavalue.value值,就是对应Commons分类的名称。
注意:少数维基百科页面没有绑定对应的Commons分类,这种场景下返回结果不会包含
P373属性,你可以根据需求做空值兼容处理即可。
内容的提问来源于stack exchange,提问作者Konstantin Lois
相关产品推荐
相关产品推荐

