调用Wikipedia API opensearch接口返回第二个数组为空如何解决
问题原因与解决方法
返回第二个数组为空的常见原因
你调用的Wikipedia OpenSearch接口的标准返回结构为4元素数组:[搜索关键词, 匹配词条标题数组, 词条描述数组, 词条链接数组],你所说的第二个数组就是匹配词条标题列表,为空的核心原因及修复方案如下:
- 请求方法错误:该接口仅支持GET请求,使用POST/PUT等其他请求方法调用时会返回空结果
- 缺失必要的限定参数:默认配置下部分场景会返回空内容,补充以下参数即可修复
limit:指定返回结果最大数量,建议设置为5~50的整数,避免默认值异常namespace=0:限定仅搜索主词条空间,过滤非内容页面的无效匹配redirects=resolve:自动处理重定向词条,避免匹配到重定向页时无返回
修复后的请求示例
https://en.wikipedia.org/w/api.php?format=json&action=opensearch&origin=*&search=javascript&limit=10&namespace=0&redirects=resolve
替代请求方案
如果OpenSearch接口仍无法满足需求,可以使用搜索能力更灵活的Query接口,示例如下:
https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=javascript&format=json&origin=*&srlimit=10
该接口返回结果中的query.search字段为匹配的词条列表,包含标题、摘要、页面ID等信息,可通过修改srnamespace、srwhat等参数自定义搜索规则。
内容的提问来源于stack exchange,提问作者Ashraf Sonde
相关产品推荐
相关产品推荐

