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
					
				
					 1 changed files with 7 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue