如何合并维基百科API查询获取英德双语条目摘要信息?
解决维基百科API双语描述合并查询的可行方案
方案一:分两步精准查询(避免标题格式问题)
第一步:一次性获取英文简介+德语条目标题
用合并的prop参数,一次请求拿到所需基础信息:
https://en.wikipedia.org/w/api.php?action=query&prop=extracts|langlinks&exintro=&explaintext=&lllang=de&titles=Albert+Einstein&format=json
该请求返回结果包含:
- 英文条目的
extract字段(纯文本简介) - 德语条目的
lltitle字段(官方标准德语标题,无格式问题)
第二步:获取德语条目简介
把第一步得到的lltitle值用URL编码(比如用encodeURIComponent()方法),然后请求德语维基API获取简介:
https://de.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=&explaintext=&titles=[编码后的德语标题]&format=json
如果需要查询多个条目,直接用|分隔多个编码后的标题,批量请求即可。
方案二:用Generator实现关联查询(进阶用法)
如果想尝试通过generator关联查询两种语言的简介,可以构造如下请求:
https://en.wikipedia.org/w/api.php?action=query&generator=langlinks&glllang=de&glltitles=Albert+Einstein&prop=extracts&exintro=&explaintext=&format=json
这个请求会直接返回对应德语条目的简介;如果同时需要英文条目信息,可以额外添加titles=Albert+Einstein参数,在结果中同时获取英文条目数据。
关于标题格式问题的说明
之前二次查询失败,大概率是因为德语标题包含空格、特殊字符(如ä/ö/ü)未做URL编码。使用encodeURIComponent()对德语标题进行编码后,就能完全适配API的titles参数要求,避免格式错误。
内容的提问来源于stack exchange,提问作者atasor
相关产品推荐
相关产品推荐

