on master help sign in
[enh] google images refactor
commit83af0b62246b29169f6295f940b3e0ba67d3a4cf authorasciimoo <asciimoo@gmail.com> dateSat 19 Oct 2013, 23:12 (13 years ago) parent225c7ec
1 file changed+11−13
searx/engines/gimages.py+11−13
searx/engines/gimages.py+11−13
@@ -1,28 +1,26 @@
11#!/usr/bin/env python
22
3−from urllib import quote
4−from lxml import html
5−from urlparse import urljoin
3+from urllib import urlencode
4+from json import loads
65
76categories = ['images']
87
9−base_url = 'https://www.google.com/'
10−search_url = base_url+'search?tbm=isch&hl=en&q='
8+search_url = 'https://ajax.googleapis.com/ajax/services/search/images?v=1.0&start=0&rsz=large&safe=off&filter=off&'
119
1210def request(query, params):
1311 global search_url
14− query = quote(query.replace(' ', '+'), safe='+')
15− params['url'] = search_url + query
12+ params['url'] = search_url + urlencode({'q': query})
1613 return params
1714
1815def response(resp):
1916 global base_url
2017 results = []
21− dom = html.fromstring(resp.text)
22− for result in dom.xpath('//table[@class="images_table"]//a'):
23− url = urljoin(base_url, result.attrib.get('href'))
24− img = result.xpath('.//img')[0]
25− title = ' '.join(result.xpath('..//text()'))
26− content = '<img src="%s" alt="%s" />' % (img.attrib.get('src', ''), title)
18+ search_res = loads(resp.text)
19+ if 'responseData' not in search_res:
20+ return []
21+ for result in search_res['responseData']['results']:
22+ url = result['originalContextUrl']
23+ title = result['title']
24+ content = result['content']+'<br /><a href="%s"><img src="%s" title="%s" style="max-width: 500px; "/></a>' % (result['url'], result['url'], title)
2725 results.append({'url': url, 'title': title, 'content': content})
2826 return results