Python中Wikipedia API中的消歧错误和GuessedAtParserWarning
我想得到一个可能的和可接受的名字列表,维基百科已经与搜索词相关。“电晕”在这种情况下。Python中Wikipedia API中的消歧错误和GuessedAtParserWarning,python,python-3.x,wikipedia,wikipedia-api,Python,Python 3.x,Wikipedia,Wikipedia Api,我想得到一个可能的和可接受的名字列表,维基百科已经与搜索词相关。“电晕”在这种情况下。 键入时: print(维基百科摘要(“Corona”) 这给出了以下输出: /home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py:389: GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available H
键入时:
print(维基百科摘要(“Corona”)
这给出了以下输出:
/home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py:389: GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.
The code that caused this warning is on line 389 of the file /home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.
lis = BeautifulSoup(html).find_all('li')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/virej/.local/lib/python3.8/site-packages/wikipedia/util.py", line 28, in __call__
ret = self._cache[key] = self.fn(*args, **kwargs)
File "/home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py", line 231, in summary
page_info = page(title, auto_suggest=auto_suggest, redirect=redirect)
File "/home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py", line 276, in page
return WikipediaPage(title, redirect=redirect, preload=preload)
File "/home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py", line 299, in __init__
self.__load(redirect=redirect, preload=preload)
File "/home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py", line 393, in __load
raise DisambiguationError(getattr(self, 'title', page['title']), may_refer_to)
wikipedia.exceptions.DisambiguationError: "Corona" may refer to:
Stellar corona
Severe acute respiratory syndrome coronavirus 2
Coronavirus disease 2019
COVID-19 pandemic
Corona (beer)
cornice
The Corona, Canterbury Cathedral
Corona (fictional world)
Doraemon: Nobita to Mittsu no Seireiseki
Spider Riders
Tangled
Super Mario Sunshine
Corona (novel)
Paul Celan
Samuel R. Delany
Corona (band)
cantus
/home/virej/.local/lib/python3.8/site packages/wikipedia/wikipedia.py:389:GuessedAtParserWarning:没有明确指定语法分析器,因此我正在使用此系统可用的最佳HTML语法分析器(“lxml”)。这通常不是问题,但如果您在另一个系统上或在不同的虚拟环境中运行此代码,它可能会使用不同的解析器并表现出不同的行为。
导致此警告的代码位于文件/home/virej/.local/lib/python3.8/site-packages/wikipedia/wikipedia.py的第389行。要消除此警告,请将附加参数'features=“lxml”'传递给BeautifulSoup构造函数。
lis=BeautifulSoup(html)。查找所有('li'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/virej/.local/lib/python3.8/site packages/wikipedia/util.py”,第28行,在调用中__
ret=self.\u缓存[key]=self.fn(*args,**kwargs)
文件“/home/virej/.local/lib/python3.8/site packages/wikipedia/wikipedia.py”,第231行,摘要
页面信息=页面(标题,自动建议=自动建议,重定向=重定向)
文件“/home/virej/.local/lib/python3.8/site packages/wikipedia/wikipedia.py”,第276行,第页
返回WikipediaPage(标题,重定向=重定向,预加载=预加载)
文件“/home/virej/.local/lib/python3.8/site packages/wikipedia/wikipedia.py”,第299行,在__
自加载(重定向=重定向,预加载=预加载)
文件“/home/virej/.local/lib/python3.8/site packages/wikipedia/wikipedia.py”,第393行,加载
引发消歧错误(getattr(自我,“标题”,第[“标题]]页),可参考)
wikipedia.exceptions.DisambizationError:“Corona”可能指:
恒星日冕
严重急性呼吸系统综合征冠状病毒2型
2019冠状病毒疾病
新冠肺炎大流行
科罗纳(啤酒)
檐口
坎特伯雷大教堂科罗纳酒店
科罗纳(虚构世界)
哆啦A梦:大雄对米津无精
蜘蛛骑士
纠结
阳光马里奥
科罗纳(小说)
保罗·策兰
德雷尼
电晕(带)
曲调
然后是更多的这些名字
我想要的只是姓名列表,而不是GuessedAtParserWarning
或消歧错误
如何实现这一点?首先,使用
pip安装wikipedia
从PyPI安装模块。
安装模块后,导入wikipedia
然后print(wikipedia.summary(“Corona”)
如果您已满足上述要求,但仍然发生错误,请执行以下操作
import warnings
warnings.catch_warnings()
warnings.simplefilter("ignore")
尽管如此,还是发生了错误
使用异常处理:
try:
print(wikipedia.summary("Corona"))
except wikipedia.exceptions.DisambiguationError as e:
print(e.options)
好的,执行此操作
import warnings.catch\u warnings()warnings.simplefilter(“ignore”)
此操作仍不起作用。它抛出的错误和警告与before@VirejDasani尝试以下操作:try:print(wikipedia.summary(“Corona”))除了wikipedia.exceptions.dis歧义错误为e:print(e.options)