Merge pull request #1842 from piplongrun/engine-etools
Add new eTools.ch engine
This commit is contained in:
		
						commit
						8c26097757
					
				
							
								
								
									
										54
									
								
								searx/engines/etools.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								searx/engines/etools.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | |||||||
|  | """ | ||||||
|  |  eTools (Web) | ||||||
|  | 
 | ||||||
|  |  @website      https://www.etools.ch | ||||||
|  |  @provide-api  no | ||||||
|  |  @using-api    no | ||||||
|  |  @results      HTML | ||||||
|  |  @stable       no (HTML can change) | ||||||
|  |  @parse        url, title, content | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | from lxml import html | ||||||
|  | from searx.engines.xpath import extract_text | ||||||
|  | from searx.url_utils import quote | ||||||
|  | from searx.utils import eval_xpath | ||||||
|  | 
 | ||||||
|  | categories = ['general'] | ||||||
|  | paging = False | ||||||
|  | language_support = False | ||||||
|  | safesearch = True | ||||||
|  | 
 | ||||||
|  | base_url = 'https://www.etools.ch' | ||||||
|  | search_path = '/searchAdvancedSubmit.do'\ | ||||||
|  |     '?query={search_term}'\ | ||||||
|  |     '&pageResults=20'\ | ||||||
|  |     '&safeSearch={safesearch}' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def request(query, params): | ||||||
|  |     if params['safesearch']: | ||||||
|  |         safesearch = 'true' | ||||||
|  |     else: | ||||||
|  |         safesearch = 'false' | ||||||
|  | 
 | ||||||
|  |     params['url'] = base_url + search_path.format(search_term=quote(query), safesearch=safesearch) | ||||||
|  | 
 | ||||||
|  |     return params | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def response(resp): | ||||||
|  |     results = [] | ||||||
|  | 
 | ||||||
|  |     dom = html.fromstring(resp.text) | ||||||
|  | 
 | ||||||
|  |     for result in eval_xpath(dom, '//table[@class="result"]//td[@class="record"]'): | ||||||
|  |         url = eval_xpath(result, './a/@href')[0] | ||||||
|  |         title = extract_text(eval_xpath(result, './a//text()')) | ||||||
|  |         content = extract_text(eval_xpath(result, './/div[@class="text"]//text()')) | ||||||
|  | 
 | ||||||
|  |         results.append({'url': url, | ||||||
|  |                         'title': title, | ||||||
|  |                         'content': content}) | ||||||
|  | 
 | ||||||
|  |     return results | ||||||
| @ -203,6 +203,11 @@ engines: | |||||||
|     timeout: 3.0 |     timeout: 3.0 | ||||||
|     disabled : True |     disabled : True | ||||||
| 
 | 
 | ||||||
|  |   - name : etools | ||||||
|  |     engine : etools | ||||||
|  |     shortcut : eto | ||||||
|  |     disabled : True | ||||||
|  | 
 | ||||||
|   - name : etymonline |   - name : etymonline | ||||||
|     engine : xpath |     engine : xpath | ||||||
|     paging : True |     paging : True | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user