2011-12-02 8 views
8

Ho controllato le API di Ricerca Google e sembra che non abbiano rilasciato alcuna API per la ricerca di "Immagini". Quindi, mi stavo chiedendo se esiste uno script/libreria python attraverso il quale posso automatizzare la funzione "ricerca per immagine".Script Python per "Ricerca Google per immagine"

+0

Immagino che Google sia preoccupata per le risorse che potrebbero verificarsi. Sarebbe una grande cosa lo – Coffee

+0

Questo script python potrebbe aiutare: http://bit.ly/QjIy21 – EyalAr

risposta

2

Non è disponibile alcuna API ma si è può analizzare la pagina e imitare il browser, ma non so quanti dati è necessario analizzare perché Google potrebbe limitare o bloccare l'accesso.

Si può imitare il browser semplicemente usando urllib e impostando le intestazioni corrette, ma se si pensa parsing pagine web complesse può essere difficile in pitone, è possibile utilizzare direttamente un browser senza testa come phontomjs, all'interno di un browser è banale per ottenere elementi corretti usando il Javascript/DOM

Nota prima di provare tutto questo controllo di Google TOS

+0

Per "ricerca google per immagine", l'immagine deve essere trascinata sullo schermo. Non sono sicuro, come posso automatizzare che usando python –

+0

quando si trascina l'immagine rilasciata, il browser invia i dati del file immagine a google, che si può fare anche da python, ma potrebbe essere diffcult per automatizzare tutte le parti, ecco perché è meglio la scommessa è di andare su phantomjs route –

2

Questo è stato abbastanza fastidioso da capire che ho pensato di pubblicare un commento sul primo risultato di stackoverflow relativo a python per "ricerca di immagini google per script". La parte più fastidiosa di tutto questo è la creazione di vostra corretta applicazione e personalizzato motore di ricerca (CSE) nell'interfaccia utente web di Google, ma una volta che avete la vostra chiave API e CSE, definirli nel vostro ambiente e fare qualcosa di simile:

#!/usr/bin/env python 

# save top 10 google image search results to current directory 
# https://developers.google.com/custom-search/json-api/v1/using_rest 

import requests 
import os 
import sys 
import re 
import shutil 

url = 'https://www.googleapis.com/customsearch/v1?key={}&cx={}&searchType=image&q={}' 
apiKey = os.environ['GOOGLE_IMAGE_APIKEY'] 
cx = os.environ['GOOGLE_CSE_ID'] 
q = sys.argv[1] 

i = 1 
for result in requests.get(url.format(apiKey, cx, q)).json()['items']: 
    link = result['link'] 
    image = requests.get(link, stream=True) 
    if image.status_code == 200: 
    m = re.search(r'[^\.]+$', link) 
    filename = './{}-{}.{}'.format(q, i, m.group()) 
    with open(filename, 'wb') as f: 
     image.raw.decode_content = True 
     shutil.copyfileobj(image.raw, f) 
    i += 1