forked from zaclys/searxng
[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 <markus.heiser@darmarit.de>
This commit is contained in:
parent
6f28a69f12
commit
77a0f33819
|
@ -7,6 +7,7 @@ import re
|
||||||
from urllib.parse import quote, urljoin
|
from urllib.parse import quote, urljoin
|
||||||
from lxml import html
|
from lxml import html
|
||||||
from searx.utils import extract_text, eval_xpath, eval_xpath_list, eval_xpath_getindex
|
from searx.utils import extract_text, eval_xpath, eval_xpath_list, eval_xpath_getindex
|
||||||
|
from searx.network import raise_for_httperror
|
||||||
|
|
||||||
# about
|
# about
|
||||||
about = {
|
about = {
|
||||||
|
@ -47,6 +48,7 @@ def request(query, params):
|
||||||
# after the last page of results, spelling corrections are returned after a HTTP redirect
|
# after the last page of results, spelling corrections are returned after a HTTP redirect
|
||||||
# whatever the page number is
|
# whatever the page number is
|
||||||
params['soft_max_redirects'] = 1
|
params['soft_max_redirects'] = 1
|
||||||
|
params['raise_for_httperror'] = False
|
||||||
return params
|
return params
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,6 +58,11 @@ def response(resp):
|
||||||
'''
|
'''
|
||||||
results = []
|
results = []
|
||||||
|
|
||||||
|
if resp.status_code == 404:
|
||||||
|
return results
|
||||||
|
|
||||||
|
raise_for_httperror(resp)
|
||||||
|
|
||||||
dom = html.fromstring(resp.text)
|
dom = html.fromstring(resp.text)
|
||||||
|
|
||||||
number_of_results_element = eval_xpath_getindex(
|
number_of_results_element = eval_xpath_getindex(
|
||||||
|
|
Loading…
Reference in New Issue