@@ -1,13 +1,15 @@
11from lxml import etree
22from requests import get
33from json import loads
4+from urllib import urlencode
45
56
67def dbpedia(query):
78 # dbpedia autocompleter
8− autocomplete_url = 'http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString={q}' # noqa
9+ autocomplete_url = 'http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?' # noqa
910
10− response = get(autocomplete_url.format(q=query))
11+ response = get(autocomplete_url
12+ + urlencode(dict(QueryString=query)))
1113
1214 results = []
1315
@@ -21,14 +23,15 @@ def dbpedia(query):
2123
2224def google(query):
2325 # google autocompleter
24− autocomplete_url = 'http://suggestqueries.google.com/complete/search?client=toolbar&q={q}' # noqa
26+ autocomplete_url = 'http://suggestqueries.google.com/complete/search?client=toolbar&' # noqa
2527
26− response = get(autocomplete_url.format(q=query))
28+ response = get(autocomplete_url
29+ + urlencode(dict(q=query)))
2730
2831 results = []
2932
3033 if response.ok:
31− dom = etree.fromstring(response.content)
34+ dom = etree.fromstring(response.text)
3235 results = dom.xpath('//suggestion/@data')
3336
3437 return results
@@ -36,9 +39,9 @@ def google(query):
3639
3740def wikipedia(query):
3841 # wikipedia autocompleter
39− url = 'https://en.wikipedia.org/w/api.php?action=opensearch&search={q}&limit=10&namespace=0&format=json' # noqa
42+ url = 'https://en.wikipedia.org/w/api.php?action=opensearch&{0}&limit=10&namespace=0&format=json' # noqa
4043
41− resp = loads(get(url.format(q=query)).text)
44+ resp = loads(get(url.format(urlencode(dict(q=query)))).text)
4245 return resp[1]
4346
4447