Sixem

Python Google Images Downloader

Feb 7th, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.55 KB | None | 0 0
  1. #!/usr/bin/python
  2. #Usage: google.py QUERY PAGES DOWNLOAD_LOCATION
  3. import urllib2
  4. import json
  5. import sys
  6. import string
  7. def format_filename(s):
  8.     valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)
  9.     filename = ''.join(c for c in s if c in valid_chars)
  10.     return filename
  11. query = urllib2.quote(str(sys.argv[1]))
  12. pages_scan = 1
  13. pages_scan = int(sys.argv[2])
  14. count = 0
  15. save_loc = str(sys.argv[3])
  16. accepted_filetypes = ['jpeg','jpg','png','bmp','gif']
  17. if pages_scan > 8:
  18.     print('\033[93m> Google API has a limit of 8 pages, pages to scan set to 8\033[0m')
  19.     pages_scan = 8
  20. for x in range(0, int(pages_scan)):
  21.     print('\033[94mPage: %s\033[0m' % (x+1))
  22.     url = ('https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s&rsz=8&start=%s' % (query,count+(x*8)))
  23.     request = urllib2.Request(url, None, {'Referer': 'None'})
  24.     response = urllib2.urlopen(request)
  25.     results = json.load(response)
  26.     for post in results['responseData']['results']:
  27.         print('> %s' % post['url'])
  28.         try:
  29.             req = urllib2.Request(post['url'], headers={'User-Agent' : "Fozilla Mirefox"})
  30.             u = urllib2.urlopen(post['url'])
  31.             mime = (u.info().getheader('Content-Type').split('/')[1])
  32.             if mime.endswith(tuple(accepted_filetypes)):
  33.                 ofile = open('%s/%s.%s' % (save_loc,format_filename(post['titleNoFormatting']),mime), 'w')
  34.                 ofile.write(u.read())
  35.                 ofile.close()
  36.         except:
  37.             print('\033[93m> Invalid Page (500 Error?)\033[0m')
Advertisement
Add Comment
Please, Sign In to add comment