Search code examples
pythonwikipediawikipedia-api

How to disable string processing in wikipedia-1.4.0 API?


When using the https://pypi.org/project/wikipedia/ API, wikipedia==1.4.0, it seems that when accessing the page, the library would first do some string processing to alter the inputs, e.g.

import wikipedia
wikipedia.page('Backstreet Boys')

[out]:

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!

How to disable string processing in wikipedia-1.4.0 API?


Solution

  • Use the auto_suggest option:

    auto_suggest - let Wikipedia find a valid page title for the query

    wikipedia.page('Backstreet Boys', auto_suggest=False)