búsqueda de python con imágenes de imágenes de google

Estoy teniendo un tiempo muy difícil en la búsqueda de imágenes de google con python. Necesito hacerlo utilizando solo bibliotecas estándar de Python (por lo tanto, urllib, urllib2, json, ..)

¿Alguien puede ayudar por favor? Supongamos que la imagen es jpeg.jpg y está en la misma carpeta desde la que estoy ejecutando python.

He probado cien versiones de código diferentes, usando encabezados, user-agent, encoding base64, diferentes urls (images.google.com, http://images.google.com/searchbyimage?hl=en&biw=1060&bih=766&gbv=2&site = buscar & image_url = {{URL a tu imagen}} & sa = X & ei = H6RaTtb5JcTeiALlmPi2CQ & ved = 0CDsQ9Q8, etc …)

Nada funciona, siempre es un error, 404, 401 o tubería rota 🙁

Por favor, muéstrame un script de Python que detectará imágenes de Google con mi propia imagen como datos de búsqueda (‘jpeg.jpg’ almacenado en mi computadora / dispositivo)

Gracias por quien puede resolver esto,

Dave 🙂

Utilizo el siguiente código en Python para buscar imágenes de Google y descargarlas en mi computadora:

import os import sys import time from urllib import FancyURLopener import urllib2 import simplejson # Define search term searchTerm = "hello world" # Replace spaces ' ' in search term for '%20' in order to comply with request searchTerm = searchTerm.replace(' ','%20') # Start FancyURLopener with defined version class MyOpener(FancyURLopener): version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11' myopener = MyOpener() # Set count to 0 count= 0 for i in range(0,10): # Notice that the start changes for each iteration in order to request a new set of images for each loop url = ('https://ajax.googleapis.com/ajax/services/search/images?' + 'v=1.0&q='+searchTerm+'&start='+str(i*4)+'&userip=MyIP') print url request = urllib2.Request(url, None, {'Referer': 'testing'}) response = urllib2.urlopen(request) # Get results using JSON results = simplejson.load(response) data = results['responseData'] dataInfo = data['results'] # Iterate for each result and get unescaped url for myUrl in dataInfo: count = count + 1 print myUrl['unescapedUrl'] myopener.retrieve(myUrl['unescapedUrl'],str(count)+'.jpg') # Sleep for one second to prevent IP blocking from Google time.sleep(1) 

También puede encontrar información muy útil aquí .

La API de búsqueda de imágenes de Google está en desuso, usamos la búsqueda de google para descargar las imágenes usando REgex y Beautiful soup

 from bs4 import BeautifulSoup import requests import re import urllib2 import os def get_soup(url,header): return BeautifulSoup(urllib2.urlopen(urllib2.Request(url,headers=header))) image_type = "Action" # you can change the query for the image here query = "Terminator 3 Movie" query= query.split() query='+'.join(query) url="https://www.google.co.in/searches_sm=122&source=lnms&tbm=isch&sa=X&ei=4r_cVID3NYayoQTb4ICQBA&ved=0CAgQ_AUoAQ&biw=1242&bih=619&q="+query print url header = {'User-Agent': 'Mozilla/5.0'} soup = get_soup(url,header) images = [a['src'] for a in soup.find_all("img", {"src": re.compile("gstatic.com")})] #print images for img in images: raw_img = urllib2.urlopen(img).read() #add the directory for your image here DIR="C:\Users\hp\Pictures\\valentines\\" cntr = len([i for i in os.listdir(DIR) if image_type in i]) + 1 print cntr f = open(DIR + image_type + "_"+ str(cntr)+".jpg", 'wb') f.write(raw_img) f.close()