[wikimedia] improve handling of warnings and errors

This commit is contained in:
ClosedPort22
2024-08-18 16:31:49 +08:00
parent 33fe1b68b7
commit 5704024662

View File

@@ -87,6 +87,17 @@ class WikimediaExtractor(BaseExtractor):
while True:
data = self.request(url, params=params).json()
# ref: https://www.mediawiki.org/wiki/API:Errors_and_warnings
error = data.get("error")
if error:
self.log.error("%s: %s", error["code"], error["info"])
return
# MediaWiki will emit warnings for non-fatal mistakes such as
# invalid parameter instead of raising an error
warnings = data.get("warnings")
if warnings:
self.log.debug("MediaWiki returned warnings: %s", warnings)
try:
pages = data["query"]["pages"]
except KeyError: