处理Python-wikipedia PageError异常时能否获取推荐页面?
关于wikipedia库PageError异常获取推荐页面的解答
好问题!我特意去查了这个库的文档和源码细节,给你明确答案:
- PageError本身没有内置的
options属性:PageError的触发场景是当你查询的标题完全没有匹配到任何维基百科页面时抛出的,它和DisambiguationError的逻辑不同——后者是有多个歧义页面存在才会触发,所以自带options列表。
不过如果你想在捕获PageError时获取近似的页面推荐,可以借助库自带的wikipedia.search()方法来实现,它会返回和查询词相关的页面标题列表,哪怕原标题不存在,也会给出近似匹配的结果。
给你写个完整的示例代码:
import wikipedia from wikipedia.exceptions import PageError, DisambiguationError target_title = "SomeNonexistentPage" try: page = wikipedia.page(target_title) print(f"成功获取页面:{page.title}") except DisambiguationError as e: print(f"发现歧义页面,可选列表:\n{e.options}") except PageError: # 调用search获取近似推荐 suggestions = wikipedia.search(target_title) if suggestions: print(f"未找到'{target_title}',但有以下近似页面推荐:\n{suggestions}") else: print(f"未找到任何与'{target_title}'相关的页面或推荐。")
需要注意的是,search()返回的结果是基于维基百科的搜索算法生成的近似匹配,可能和你预期的不完全一致,但这是目前这个库能提供的最接近“推荐页面”的方案了。
内容的提问来源于stack exchange,提问作者Ronnie
相关产品推荐
相关产品推荐

