@@ -1,28 +1,26 @@
1#!/usr/bin/env python
1#!/usr/bin/env python
3−from urllib import quote
3+from urllib import urlencode
4−from lxml import html
4+from json import loads
5−from urlparse import urljoin
7categories = ['images']
6categories = ['images']
9−base_url = 'https://www.google.com/'
8+search_url = 'https://ajax.googleapis.com/ajax/services/search/images?v=1.0&start=0&rsz=large&safe=off&filter=off&'
10−search_url = base_url+'search?tbm=isch&hl=en&q='
12def request(query, params):
10def request(query, params):
13 global search_url
11 global search_url
14− query = quote(query.replace(' ', '+'), safe='+')
15− params['url'] = search_url + query
12+ params['url'] = search_url + urlencode({'q': query})
16 return params
13 return params
18def response(resp):
15def response(resp):
19 global base_url
16 global base_url
20 results = []
17 results = []
21− dom = html.fromstring(resp.text)
18+ search_res = loads(resp.text)
22− for result in dom.xpath('//table[@class="images_table"]//a'):
19+ if 'responseData' not in search_res:
23− url = urljoin(base_url, result.attrib.get('href'))
20+ return []
24− img = result.xpath('.//img')[0]
21+ for result in search_res['responseData']['results']:
25− title = ' '.join(result.xpath('..//text()'))
22+ url = result['originalContextUrl']
26− content = '<img src="%s" alt="%s" />' % (img.attrib.get('src', ''), title)
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)
27 results.append({'url': url, 'title': title, 'content': content})
25 results.append({'url': url, 'title': title, 'content': content})
28 return results
26 return results