diff options
| author | Markus Heiser <markus.heiser@darmarIT.de> | 2020-02-23 11:52:29 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-23 11:52:29 +0000 |
| commit | 8c2609775755d991c9905a0852c2770a79d1c091 (patch) | |
| tree | 01b461cccb2296043fc323a55ed2fd5e51aaf5d1 | |
| parent | 90d23e7ef6666408e4ad49841e89ca086568e5b1 (diff) | |
| parent | 98322ac15c219c1bb61a3528543c785f32c9a697 (diff) | |
Merge pull request #1842 from piplongrun/engine-etools
Add new eTools.ch engine
| -rw-r--r-- | searx/engines/etools.py | 54 | ||||
| -rw-r--r-- | searx/settings.yml | 5 |
2 files changed, 59 insertions, 0 deletions
diff --git a/searx/engines/etools.py b/searx/engines/etools.py new file mode 100644 index 000000000..a9eb0980d --- /dev/null +++ b/searx/engines/etools.py @@ -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 diff --git a/searx/settings.yml b/searx/settings.yml index 65f42af8c..f39a5e32d 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -203,6 +203,11 @@ engines: timeout: 3.0 disabled : True + - name : etools + engine : etools + shortcut : eto + disabled : True + - name : etymonline engine : xpath paging : True |