可以用一点力推。我正在尝试使用“维基百科”模块来提取各种主题的信息,以便与我的自定义语音助手一起使用。当维基百科有一个我认为的重定向时,我遇到了问题。查看示例:
import wikipedia
result = wikipedia.summary("Thomas Cruise", sentences = 2)
print(result)
输出:
Thomas Cruise Mapother IV (born July 3, 1962) is an American actor. Regarded as a Hollywood icon, he has received various accolades, including an Honorary Palme d'Or and three Golden Globe Awards, in addition to nominations for four Academy Awards.
但是当我改成更流行的名字“汤姆·克鲁斯”时,我得到了这个:
import wikipedia
result = wikipedia.summary("Tom Cruise", sentences = 2)
print(result)
输出:
Homelab:/config/tmp# python3 wiki.py
Traceback (most recent call last):
File "/config/tmp/wiki.py", line 2, in <module>
result = wikipedia.summary("Tom Cruise", sentences = 2)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/wikipedia/util.py", line 28, in __call__
ret = self._cache[key] = self.fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/wikipedia/wikipedia.py", line 231, in summary
page_info = page(title, auto_suggest=auto_suggest, redirect=redirect)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/wikipedia/wikipedia.py", line 276, in page
return WikipediaPage(title, redirect=redirect, preload=preload)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/wikipedia/wikipedia.py", line 299, in __init__
self.__load(redirect=redirect, preload=preload)
File "/usr/local/lib/python3.12/site-packages/wikipedia/wikipedia.py", line 345, in __load
raise PageError(self.title)
wikipedia.exceptions.PageError: Page id "tom raise" does not match any pages. Try another id!
不幸的是,我的 Python 技能不太好,我无法真正弄清楚为什么这不起作用。我知道如果我在维基百科主页面上搜索“汤姆·克鲁斯”,它会重定向到正确的页面,该页面甚至被称为“https://en.wikipedia.org/wiki/Tom_Cruise”
非常感谢任何帮助。
感谢@fjsevilla 的修复:
import wikipedia
result = wikipedia.summary("Tom Cruise", sentences = 2, auto_suggest=False)
print(result)
auto_suggest=需要 False