为什么 try: except: 不适用于 python Wikipedia API 的这一特定代码行?
Why is try: except: not working for this particular line of code with python Wikipedia API?
我正在尝试执行从我的较大代码中取出的这段非常短的代码,因为我在使用它时遇到了问题。我能够重现该问题(它给出了完全相同的错误)。
背景信息:我只是想从维基百科搜索中找出第一句话。但是因为我正在搜索的词(kip,在荷兰语中是鸡的意思)有多种含义,或者我遇到了错误。我想使用 try: except: 绕过这个错误,但它仍然显示错误消息。
这是似乎不起作用的代码:
import wikipedia
wikipedia.set_lang('nl')
try:
summry = wikipedia.summary('kip', sentences=1)
print(summry + "\n")
except:
print("error")
我试过用这个替换除了:
except wikipedia.exceptions.DisambiguationError:
但它仍然不起作用:(它总是显示错误代码 regradless 并在之后打印 "error"
/opt/virtualenvs/python3/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 ("html5lib"). 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
/opt/virtualenvs/python3/lib/python3.8/site-packages/wikipedia/wikipedia.py. To get rid of this
warning, pass the additional argument 'features="html5lib"' to the BeautifulSoup constructor.
lis = BeautifulSoup(html).find_all('li')
error
我正在使用 repl.it 来编程这个
如果有人知道为什么它总是显示错误,请告诉我 :D
首先感谢大家的评论:D 帮了大忙
最后,对我有用的解决方案的灵感来自 Askold Ilvento 的评论
虽然
with warnings.catch_warnings(): warnings.simplefilter("ignore")
当我稍微调整它时没有用,它完成了工作!
这是解决问题的代码,让我可以忽略实际上是警告(不是异常)并停止显示它
import warnings
warnings.catch_warnings()
warnings.simplefilter("ignore")
我只是在脚本的开头添加了它,它解决了问题:D
此代码的所有功劳再次归功于 Askold Ilvento 我只需要添加一点使其工作
我正在尝试执行从我的较大代码中取出的这段非常短的代码,因为我在使用它时遇到了问题。我能够重现该问题(它给出了完全相同的错误)。
背景信息:我只是想从维基百科搜索中找出第一句话。但是因为我正在搜索的词(kip,在荷兰语中是鸡的意思)有多种含义,或者我遇到了错误。我想使用 try: except: 绕过这个错误,但它仍然显示错误消息。
这是似乎不起作用的代码:
import wikipedia
wikipedia.set_lang('nl')
try:
summry = wikipedia.summary('kip', sentences=1)
print(summry + "\n")
except:
print("error")
我试过用这个替换除了:
except wikipedia.exceptions.DisambiguationError:
但它仍然不起作用:(它总是显示错误代码 regradless 并在之后打印 "error"
/opt/virtualenvs/python3/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 ("html5lib"). 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
/opt/virtualenvs/python3/lib/python3.8/site-packages/wikipedia/wikipedia.py. To get rid of this
warning, pass the additional argument 'features="html5lib"' to the BeautifulSoup constructor.
lis = BeautifulSoup(html).find_all('li')
error
我正在使用 repl.it 来编程这个
如果有人知道为什么它总是显示错误,请告诉我 :D
首先感谢大家的评论:D 帮了大忙
最后,对我有用的解决方案的灵感来自 Askold Ilvento 的评论
虽然
with warnings.catch_warnings(): warnings.simplefilter("ignore")
当我稍微调整它时没有用,它完成了工作!
这是解决问题的代码,让我可以忽略实际上是警告(不是异常)并停止显示它
import warnings
warnings.catch_warnings()
warnings.simplefilter("ignore")
我只是在脚本的开头添加了它,它解决了问题:D 此代码的所有功劳再次归功于 Askold Ilvento 我只需要添加一点使其工作