mirror of https://github.com/searxng/searxng.git
40 lines
955 B
Python
40 lines
955 B
Python
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||
|
# lint: pylint
|
||
|
"""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
|