google_images.py 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. ## Google (Images)
  2. #
  3. # @website https://www.google.com
  4. # @provide-api yes (https://developers.google.com/web-search/docs/),
  5. # deprecated!
  6. #
  7. # @using-api yes
  8. # @results JSON
  9. # @stable yes (but deprecated)
  10. # @parse url, title, img_src
  11. from urllib import urlencode, unquote
  12. from json import loads
  13. # engine dependent config
  14. categories = ['images']
  15. paging = True
  16. # search-url
  17. url = 'https://ajax.googleapis.com/'
  18. search_url = url + 'ajax/services/search/images?v=1.0&start={offset}&rsz=large&safe=off&filter=off&{query}' # noqa
  19. # do search-request
  20. def request(query, params):
  21. offset = (params['pageno'] - 1) * 8
  22. params['url'] = search_url.format(query=urlencode({'q': query}),
  23. offset=offset)
  24. return params
  25. # get response from search-request
  26. def response(resp):
  27. results = []
  28. search_res = loads(resp.text)
  29. # return empty array if there are no results
  30. if not search_res.get('responseData', {}).get('results'):
  31. return []
  32. # parse results
  33. for result in search_res['responseData']['results']:
  34. print result
  35. href = result['originalContextUrl']
  36. title = result['title']
  37. if not result['url']:
  38. continue
  39. thumbnail_src = result['tbUrl']
  40. # append result
  41. results.append({'url': href,
  42. 'title': title,
  43. 'content': '',
  44. 'thumbnail_src': thumbnail_src,
  45. 'img_src': unquote(result['url']),
  46. 'template': 'images.html'})
  47. # return results
  48. return results