如何禁用wikipedia-1.4.0 API中的字符串处理功能?
问题
使用wikipedia==1.4.0库时,调用wikipedia.page()接口会自动对输入的标题字符串做处理修改。例如执行以下代码:
import wikipedia wikipedia.page('Backstreet Boys')
返回如下错误:
PageError Traceback (most recent call last) Cell In[3], line 1 ----> 1 wikipedia.page('Backstreet Boys') File ~/miniconda3/lib/python3.9/site-packages/wikipedia/wikipedia.py:276, in page(title, pageid, auto_suggest, redirect, preload) 273 except IndexError: 274 # if there is no suggestion or search results, the page doesn't exist 275 raise PageError(title) --> 276 return WikipediaPage(title, redirect=redirect, preload=preload) 277 elif pageid is not None: 278 return WikipediaPage(pageid=pageid, preload=preload) File ~/miniconda3/lib/python3.9/site-packages/wikipedia/wikipedia.py:299, in WikipediaPage.__init__(self, title, pageid, redirect, preload, original_title) 296 else: 297 raise ValueError("Either a title or a pageid must be specified") --> 299 self.__load(redirect=redirect, preload=preload) 301 if preload: 302 for prop in ('content', 'summary', 'images', 'references', 'links', 'sections'): File ~/miniconda3/lib/python3.9/site-packages/wikipedia/wikipedia.py:345, in WikipediaPage.__load(self, redirect, preload) 343 if 'missing' in page: 344 if hasattr(self, 'title'): --> 345 raise PageError(self.title) 346 else: 347 raise PageError(pageid=self.pageid) PageError: Page id "back street boys" does not match any pages. Try another id!
如何禁用该库的字符串处理功能?
解决方案
关闭自动建议参数:
wikipedia.page()默认开启auto_suggest=True,会触发维基百科搜索建议并修改标题。设置auto_suggest=False即可直接使用原始标题请求:import wikipedia page = wikipedia.page('Backstreet Boys', auto_suggest=False)直接实例化
WikipediaPage:如果第一种方法不生效,直接创建WikipediaPage实例并指定original_title锁定原始标题:from wikipedia import WikipediaPage page = WikipediaPage(title='Backstreet Boys', original_title='Backstreet Boys')验证效果:通过
page.title确认实际使用的是原始输入标题:print(page.title) # 输出: Backstreet Boys
内容的提问来源于stack exchange,提问作者alvas
相关产品推荐
相关产品推荐

