Compare commits

..

2 Commits

Author SHA1 Message Date
Markus Heiser 0ceb2563d2
Merge pull request #1682 from return42/fix-duden
[fix] engine duden - don't raise exception on empty result list
2022-08-20 13:17:07 +02:00
Markus Heiser 77a0f33819 [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>
2022-08-20 08:41:03 +02:00
1 changed files with 7 additions and 0 deletions

View File

@ -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(