From e91e4e7fdbbdef49b19011ff8d7efa34fa55be3b Mon Sep 17 00:00:00 2001 From: asciimoo Date: Mon, 14 Oct 2013 23:54:33 +0200 Subject: [PATCH] [enh] duckduckgo definitions --- searx/engines/duckduckgo_definitions.py | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 searx/engines/duckduckgo_definitions.py diff --git a/searx/engines/duckduckgo_definitions.py b/searx/engines/duckduckgo_definitions.py new file mode 100644 index 00000000..50c93a24 --- /dev/null +++ b/searx/engines/duckduckgo_definitions.py @@ -0,0 +1,32 @@ +import json +from searx import base_result_template + +def request(query, params): + params['url'] = 'http://api.duckduckgo.com/?q=%s&format=json&pretty=0' % query + return params + + +def response(resp): + search_res = json.loads(resp.text) + results = [] + if 'Definition' in search_res: + res = {'title' : search_res.get('Heading', '') + ,'content' : search_res.get('Definition', '') + ,'url' : search_res.get('AbstractURL', '') + } + results.append(base_result_template.format(**res)) + + return results + +#from lxml import html +#def request(query, params): +# params['method'] = 'POST' +# params['url'] = 'https://duckduckgo.com/html' +# params['data']['q'] = query +# return params +# +# +#def response(resp): +# dom = html.fromstring(resp.text) +# results = dom.xpath('//div[@class="results_links results_links_deep web-result"]') +# return [html.tostring(x) for x in results]