'page' method with strings containing 'ad' and '_' are being corrupted
Opened this issue · 2 comments
rhodges commented
Python v3.11
MediaWikiAPI v1.2 (installed via Pip)
>>> import mediawikiapi
>>> wiki_api = mediawikiapi.MediaWikiAPI()
>>> page = wiki_api.page('Honey_badger')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/rhodges/anaconda3/envs/hero/lib/python3.11/site-packages/mediawikiapi/mediawikiapi.py", line 228, in page
return WikipediaPage(
^^^^^^^^^^^^^^
File "/home/rhodges/anaconda3/envs/hero/lib/python3.11/site-packages/mediawikiapi/wikipediapage.py", line 39, in __init__
self.__load(redirect=redirect, preload=preload)
File "/home/rhodges/anaconda3/envs/hero/lib/python3.11/site-packages/mediawikiapi/wikipediapage.py", line 93, in __load
raise PageError(title=self.title)
mediawikiapi.exceptions.PageError: "honey bager" does not match any pages. Try another query!
>>> page = wiki_api.page('Ada_lovelace')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/rhodges/anaconda3/envs/hero/lib/python3.11/site-packages/mediawikiapi/mediawikiapi.py", line 228, in page
return WikipediaPage(
^^^^^^^^^^^^^^
File "/home/rhodges/anaconda3/envs/hero/lib/python3.11/site-packages/mediawikiapi/wikipediapage.py", line 39, in __init__
self.__load(redirect=redirect, preload=preload)
File "/home/rhodges/anaconda3/envs/hero/lib/python3.11/site-packages/mediawikiapi/wikipediapage.py", line 93, in __load
raise PageError(title=self.title)
mediawikiapi.exceptions.PageError: "a lovelace" does not match any pages. Try another query!
Note the change in the search term reported in the error:
- "honey bager"
- "a lovelace"
For some reason, adding a 'd' to or removing the '_' from the search term works:
>>> page = wiki_api.page('Adalovelace')
>>> page = wiki_api.page('Honeybadger')
>>> page = wiki_api.page('Adda_lovelace')
>>> page = wiki_api.page('Honey_baddger')
No errors, and page.summary
shows as expected.
rhodges commented
Oh, but 'Pando_(tree)' works just fine...
scott-vsi commented
I am getting a similar error when looking up Google (https://en.wikipedia.org/wiki/Google)
import mediawikiapi
>>> wiki_api = mediawikiapi.MediaWikiAPI()
>>> response = wiki_api.page("Google")
---------------------------------------------------------------------------
PageError Traceback (most recent call last)
Cell In[51], line 1
----> 1 response = mediawikiapi.page("Google")
File /venv/lib/python3.10/site-packages/mediawikiapi/mediawikiapi.py:228, in MediaWikiAPI.page(self, title, pageid, auto_suggest, redirect, preload)
226 results, suggestion = self.search(title, results=1, suggestion=True)
227 if suggestion:
--> 228 return WikipediaPage(
229 request=request_f,
230 title=suggestion,
231 pageid=pageid,
232 redirect=redirect,
233 preload=preload,
234 )
235 try:
236 title = results[0]
File /venv/lib/python3.10/site-packages/mediawikiapi/wikipediapage.py:39, in WikipediaPage.__init__(self, request, title, pageid, redirect, preload, original_title)
36 raise ValueError("Either a title or a pageid must be specified")
38 self.request = request
---> 39 self.__load(redirect=redirect, preload=preload)
40 if preload:
41 for prop in (
42 "content",
43 "summary",
(...)
48 "infobox",
49 ):
File /venv/lib/python3.10/site-packages/mediawikiapi/wikipediapage.py:93, in WikipediaPage.__load(self, redirect, preload)
91 if "missing" in page:
92 if hasattr(self, "title"):
---> 93 raise PageError(title=self.title)
94 else:
95 raise PageError(pageid=self.pageid)
PageError: "google\" does not match any pages. Try another query!
for some reason, adding some other character somewhere in the title (e.g., "Gioogle") worked as well (although, for whatever reason, not all characters/places work: ("Gjoogle" doesn't work, but "Gkoogle" does).
Python v3.10.12
MediaWikiAPI v1.2 (installed via Pip)