使用Python Wikipedia API访问页面异常:Apple Inc.页面访问失败求助
维基百科Python API页面访问异常问题排查
我在用维基百科Python API提取页面图片URL时,遇到了页面访问异常的问题,以Apple Inc.的维基页面为例:
- 页面标准标题是
Apple Inc.,URL中的页面名称为Apple_Inc. - 直接用
wikipedia.page("Apple Inc.")或wikipedia.page("Apple_Inc.")调用时,都会抛出错误:Page id "apple in" does not match any pages. Try another id! - 但用相近的标题(比如
Apple Inc、Apple In、Apple Incorporated、Apple Incorporated.)调用,却能正常返回<WikipediaPage 'Apple Inc.'> - 更奇怪的是,输入
Apple Incc.时,API会错误地去查找apple inch页面,导致报错
复现代码
import wikipedia # 报错场景 page = wikipedia.page(title="Apple Inc.") print(page) # -> wikipedia.exceptions.PageError: Page id "apple in" does not match any pages. Try another id! page = wikipedia.page(title="Apple_Inc.") print(page) # -> wikipedia.exceptions.PageError: Page id "apple in" does not match any pages. Try another id! # 正常返回场景 page = wikipedia.page(title="Apple Inc") print(page) # -> <WikipediaPage 'Apple Inc.'> page = wikipedia.page(title="Apple In") print(page) # -> <WikipediaPage 'Apple Inc.'> page = wikipedia.page(title="Apple Incorporated") print(page) # -> <WikipediaPage 'Apple Inc.'> page = wikipedia.page(title="Apple Incorporated.") print(page) # -> <WikipediaPage 'Apple Inc.'> # 另一种报错场景 page = wikipedia.page(title="Apple Incc.") print(page) # -> wikipedia.exceptions.PageError: Page id "apple inch" does not match any pages. Try another id!
问题原因
这是维基百科Python API内部的拼写纠错/自动转换逻辑导致的:
- 当标题包含带点的缩写(比如
Inc.)时,API可能将末尾的.视为标点截断,再进行模糊匹配,把Inc.误识别成In,最终把Apple Inc.转换成apple in去查找 Apple Incc.的情况是API把Incc.错误纠错成了inch,导致查找目标完全偏离- 而
Apple Incorporated.能正常访问,是因为Incorporated是完整单词,末尾的.不会触发错误的截断转换
解决方案
- 方案1:使用无末尾点的近似标题:利用API的自动重定向能力,比如用
Apple Inc代替Apple Inc.调用,能稳定获取正确页面 - 方案2:使用维基数据ID精确调用:每个维基页面都有唯一的维基数据ID(Apple Inc.的ID是Q312),直接用ID调用可避免拼写转换问题:
page = wikipedia.page(pageid=312) print(page) # -> <WikipediaPage 'Apple Inc.'>
- 方案3:关闭自动纠错强制精确匹配:调用时添加
auto_suggest=False参数,强制API精确匹配输入的标题(注意:需确保标题完全符合维基页面的标准格式,否则仍可能报错):
page = wikipedia.page(title="Apple Inc.", auto_suggest=False) print(page) # -> <WikipediaPage 'Apple Inc.'>
内容的提问来源于stack exchange,提问作者Vincent Garcia
相关产品推荐
相关产品推荐

