diff options
author | Adam Tauber <asciimoo@gmail.com> | 2014-03-29 16:30:49 +0100 |
---|---|---|
committer | Adam Tauber <asciimoo@gmail.com> | 2014-03-29 16:30:49 +0100 |
commit | fd730ebcad436ded8720d5ee25b575e39eeb05f4 (patch) | |
tree | edf0275cdb0551df4dbe2b2f60585c4fb2665cf3 /searx/autocomplete.py | |
parent | 41dd4d9ba3429b387bf32a65ce4b1bfe4f82444c (diff) | |
download | searxng-fd730ebcad436ded8720d5ee25b575e39eeb05f4.tar.gz searxng-fd730ebcad436ded8720d5ee25b575e39eeb05f4.zip |
[fix] autocompleter.py added
Diffstat (limited to 'searx/autocomplete.py')
-rw-r--r-- | searx/autocomplete.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/searx/autocomplete.py b/searx/autocomplete.py new file mode 100644 index 000000000..e9cdc8ba9 --- /dev/null +++ b/searx/autocomplete.py @@ -0,0 +1,48 @@ +from lxml import etree +from requests import get +from json import loads + + +def dbpedia(query): + # dbpedia autocompleter + autocomplete_url = 'http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString={q}' # noqa + + response = get(autocomplete_url.format(q=query)) + + results = [] + + if response.ok: + dom = etree.fromstring(response.content) + results = dom.xpath('//a:Result/a:Label//text()', + namespaces={'a': 'http://lookup.dbpedia.org/'}) + + return results + + +def google(query): + # google autocompleter + autocomplete_url = 'http://suggestqueries.google.com/complete/search?client=toolbar&q={q}' # noqa + + response = get(autocomplete_url.format(q=query)) + + results = [] + + if response.ok: + dom = etree.fromstring(response.content) + results = dom.xpath('//suggestion/@data') + + return results + + +def wikipedia(query): + # wikipedia autocompleter + url = 'https://en.wikipedia.org/w/api.php?action=opensearch&search={q}&limit=10&namespace=0&format=json' # noqa + + resp = loads(get(url.format(q=query)).text) + return resp[1] + + +backends = {'dbpedia': dbpedia, + 'google': google, + 'wikipedia': wikipedia + } |