|
@@ -49,7 +49,11 @@ from flask_babel import gettext
|
|
|
import babel
|
|
|
import lxml
|
|
|
|
|
|
-from searx.exceptions import SearxEngineAPIException, SearxEngineTooManyRequestsException
|
|
|
+from searx.exceptions import (
|
|
|
+ SearxEngineAPIException,
|
|
|
+ SearxEngineTooManyRequestsException,
|
|
|
+ SearxEngineCaptchaException,
|
|
|
+)
|
|
|
from searx.network import raise_for_httperror
|
|
|
from searx.enginelib.traits import EngineTraits
|
|
|
|
|
@@ -187,6 +191,8 @@ def parse_web_api(resp):
|
|
|
error_code = data.get('error_code')
|
|
|
if error_code == 24:
|
|
|
raise SearxEngineTooManyRequestsException()
|
|
|
+ if search_results.get("data", {}).get("error_data", {}).get("captchaUrl") is not None:
|
|
|
+ raise SearxEngineCaptchaException()
|
|
|
msg = ",".join(data.get('message', ['unknown']))
|
|
|
raise SearxEngineAPIException(f"{msg} ({error_code})")
|
|
|
|