首页 > 解决方案 > 使用python阅读时如何解决Wikipedia API页面错误?

问题描述

我正在做一个文档摘要 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'

ELon Musk 维基百科页面

这是我的代码

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 turn,还尝试了 Albert_Einstein,它显示出奇怪的输出,就像 Elon Musk 一样。

然而,它与 Nikola Tesla、Michio Kaku、Narendra Modi 等人合作,这表明我没有做错。

标签: python-3.xwikipediatext-extractiondata-extraction

解决方案


wikipedia.page是一种废话。它使用 Wikipedia 的搜索建议 API 来转换其title参数,然后再在 Wikipedia 上查找它。搜索建议(类似于 Google 的“您的意思是......?”功能)完全不适合此目的,它们是通过寻找最接近的(就编辑距离而言)由常用词词典中的术语组成的字符串。这对于修复拼写错误非常有效,绝对不能用于产生结果的搜索词,更不用说用于实际文章标题。

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


推荐阅读