title: Scraping Google images with Python
body: <p>I'm trying to learn Python scraping and came across a program to scrape a set number of images from Google image search results</p>
  
  <p>I changed it to go for 5 images, it was working for a while but it stopped working recently with showing outputs such as <code>there are 0 images</code></p>
  
  <pre><code>import requests
  import re
  import urllib2
  import os
  import cookielib
  import json
  
  def get_soup(url,header):
      return BeautifulSoup(urllib2.urlopen(urllib2.Request(url,headers=header)),'html.parser')
  
  
  query = raw_input("query image")# you can change the query for the image  here
  image_type="ActiOn"
  query= query.split()
  query='+'.join(query)
  url="https://www.google.com/search?q="+query+"&amp;source=lnms&amp;tbm=isch"
  print url
  #add the directory for your image here
  DIR="C:\Users\mynam\Desktop\WB"
  header={'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"
  }
  soup = get_soup(url,header)
  
  
  ActualImages=[]# contains the link for Large original images, type of  image
  for a in soup.find_all("div",{"class":"rg_meta"}):
      link , Type =json.loads(a.text)["ou"]  ,json.loads(a.text)["ity"]
      ActualImages.append((link,Type))
  
  print  "there are total" , len(ActualImages),"images"
  
  if not os.path.exists(DIR):
              os.mkdir(DIR)
  DIR = os.path.join(DIR, query.split()[0])
  
  if not os.path.exists(DIR):
              os.mkdir(DIR)
  ###print images
  for i , (img , Type) in enumerate(ActualImages[0:5]):
      try:
          req = urllib2.Request(img, headers={'User-Agent' : header})
          raw_img = urllib2.urlopen(req).read()
  
          cntr = len([i for i in os.listdir(DIR) if image_type in i]) + 1
          print cntr
          if len(Type)==0:
              f = open(os.path.join(DIR , image_type + "_"+ str(cntr)+".jpg"), 'wb')
          else :
              f = open(os.path.join(DIR , image_type + "_"+ str(cntr)+"."+Type), 'wb')
  
  
          f.write(raw_img)
          f.close()
      except Exception as e:
          print "could not load : "+img
          print e
  </code></pre>
  
  <p>There are no error logs, the file gets created and it is empty. The <code>ActualImages</code> array remains empty for some reason.</p>