如何解决在 python 中阅读时维基百科 API 页面错误?

Dar*_*eam 2 wikipedia text-extraction data-extraction python-3.x

我正在开发一个文档摘要 NLP 项目,因此我想从维基百科中提取埃隆·马斯克的简介。我尝试在维基百科库(API)的帮助下提取它,

我第一次尝试使用页面标题(即,埃隆·马斯克),但它给了我一个页面错误,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,
Run Code Online (Sandbox Code Playgroud)

我尝试了艾伦旋转,但不起作用,还尝试了阿尔伯特_爱因斯坦,它显示出奇怪的输出,就像埃隆·马斯克一样。

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

Tgr*_*Tgr 5

wikipedia.page有点废话。title它使用维基百科的搜索建议 API在维基百科上查找之前转换其参数。搜索建议(类似于 Google 的“您是说……吗?”功能)完全不适合此目的,它们是通过寻找最接近的(将零结果搜索更改为产生结果的搜索)的最后努力。就编辑距离而言)由常用单词词典中的术语组成的字符串。这对于修复拼写错误非常有效,并且绝对不适合用于确实产生结果的搜索词,更不用说用于实际的文章标题了。

您可以使用 禁用此行为,尽管考虑到维基百科auto_suggest=false的错误报告有一半是关于此问题的,有些几乎可以追溯到解码,您可能需要寻找一个维护得更好的库。