From 77a0f338199b4921deaf365c4339a1d9a716bdd7 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Fri, 19 Aug 2022 17:58:37 +0200 Subject: [PATCH] [fix] engine duden - don't raise exception on empty result list Duden expects a word in German, so with query "amazing" the site finds nothing and respons a 404: httpx.HTTPStatusError: Client error '404 Not Found' for url\ 'https://www.duden.de/suchen/dudenonline/amazing' [1] https://github.com/searxng/searxng/issues/1543#issuecomment-1193317054 Suggested-by: @allendema [1] Signed-off-by: Markus Heiser --- searx/engines/duden.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/searx/engines/duden.py b/searx/engines/duden.py index da4c4f7d..dca56640 100644 --- a/searx/engines/duden.py +++ b/searx/engines/duden.py @@ -7,6 +7,7 @@ import re from urllib.parse import quote, urljoin from lxml import html from searx.utils import extract_text, eval_xpath, eval_xpath_list, eval_xpath_getindex +from searx.network import raise_for_httperror # about about = { @@ -47,6 +48,7 @@ def request(query, params): # after the last page of results, spelling corrections are returned after a HTTP redirect # whatever the page number is params['soft_max_redirects'] = 1 + params['raise_for_httperror'] = False return params @@ -56,6 +58,11 @@ def response(resp): ''' results = [] + if resp.status_code == 404: + return results + + raise_for_httperror(resp) + dom = html.fromstring(resp.text) number_of_results_element = eval_xpath_getindex(