summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorasciimoo <asciimoo@gmail.com>2013-10-14 23:54:33 +0200
committerasciimoo <asciimoo@gmail.com>2013-10-14 23:54:33 +0200
commite91e4e7fdbbdef49b19011ff8d7efa34fa55be3b (patch)
tree34fad5b0a8eaa89a65213511abf59ca560528b2e
parent157dcaab620758ae3c0e12dccad786d5edc51560 (diff)
[enh] duckduckgo definitions
-rw-r--r--searx/engines/duckduckgo_definitions.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/searx/engines/duckduckgo_definitions.py b/searx/engines/duckduckgo_definitions.py
new file mode 100644
index 000000000..50c93a243
--- /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]