阅读 python 时如何解决 Wikipedia API 页面错误?

How to solve Wikipedia API Page Error while reading in python?

我正在做一个文档摘要 NLP 项目,所以我想从维基百科中提取 Elon Musk 的简介。我试图在维基百科图书馆的帮助下提取它 (API),

我首先尝试使用页面标题(即 Elon Musk),但它给我一个页面错误 PageError: Page id "e on musk" does not match any pages. Try another id! 你注意到它显示的页面 ID 了吗 "e on musk" 然后我尝试使用它的页面ID 号(即 Q317521),它输出一些植物的结果 'Matthiola incana'

这是我的代码

import wikipedia

elon = wikipedia.page('Elon Musk').content
elon
# outputs
PageError: Page id "e on musk" does not match any pages. Try another id!


elon = wikipedia.page('Q317521').content
elon
# outputs (shorted)
Matthiola incana is a species of flowering plant in the cabbage family Brassicaceae. Common names include Brompton stock,

我试过 Alan turning,但没有用,还试过 Albert_Einstein,它显示奇怪的输出,就像 Elon Musk。

然而,它与尼古拉·特斯拉、加来道雄、纳伦德拉·莫迪等人合作,这表明我没有做错。

wikipedia.page 有点废话。它使用维基百科的搜索建议 API 来转换其 title 参数,然后再在维基百科上查找它。搜索建议(类似于 Google 的“您的意思是...?”功能)完全不适合此目的,它们是 last-ditch 将 zero-result 搜索更改为一个搜索的努力通过查找最接近(根据 edit distance)的字符串来产生结果,该字符串由常用词词典中的术语组成。这对于修复拼写错误非常有效,绝对不能用于产生结果的搜索词,更不用说用于实际的文章标题了。

您可以使用 auto_suggest=false 禁用此行为,尽管 wikipedia 的错误报告有一半是关于此问题的,有些几乎可以返回解码,您可能需要寻找更好的维护库。