39 lines
		
	
	
		
			940 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			940 B
		
	
	
	
		
			Python
		
	
	
	
	
	
# SPDX-License-Identifier: AGPL-3.0-or-later
 | 
						|
"""Cppreference
 | 
						|
"""
 | 
						|
from lxml import html
 | 
						|
from searx.utils import eval_xpath
 | 
						|
 | 
						|
 | 
						|
about = {
 | 
						|
    "website": "https://en.cppreference.com/",
 | 
						|
    "wikidata_id": None,
 | 
						|
    "official_api_documentation": None,
 | 
						|
    "use_official_api": False,
 | 
						|
    "require_api_key": False,
 | 
						|
    "results": 'HTML',
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
categories = ['it']
 | 
						|
url = 'https://en.cppreference.com/'
 | 
						|
search_url = url + 'mwiki/index.php?title=Special%3ASearch&search={query}'
 | 
						|
 | 
						|
 | 
						|
def request(query, params):
 | 
						|
    params['url'] = search_url.format(query=query)
 | 
						|
    return query
 | 
						|
 | 
						|
 | 
						|
def response(resp):
 | 
						|
    results = []
 | 
						|
    dom = html.fromstring(resp.text)
 | 
						|
    for result in eval_xpath(dom, '//div[contains(@class, "mw-search-result-heading")]'):
 | 
						|
        results.append(
 | 
						|
            {
 | 
						|
                'url': url + eval_xpath(result, './/a/@href')[0],
 | 
						|
                'title': eval_xpath(result, './/a/text()')[0],
 | 
						|
            }
 | 
						|
        )
 | 
						|
    return results
 |