File size: 2,670 Bytes
993fe8a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
from googleapiclient.discovery import build
# --- Configura tus credenciales y ID de Motor de Búsqueda ---
API_KEY = "AIzaSyDjsiJLlUwtHaCCBQUwcFCqlN5Nu5wJluw" # Reemplaza con tu Clave de API de Google Cloud
CX = "90556d12415d84063" # Reemplaza con el ID de tu Custom Search Engine
def buscar_imagenes_google(query, num_results=5):
"""
Realiza una búsqueda de imágenes en Google usando la Custom Search API.
Args:
query (str): El término de búsqueda.
num_results (int): El número máximo de resultados a devolver (máx. 10 por solicitud).
Returns:
list: Una lista de diccionarios, donde cada diccionario representa una imagen
y contiene su URL, título, etc.
"""
try:
# Construye el servicio de la API de Custom Search
# 'customsearch' es el nombre del servicio, 'v1' es la versión
service = build("customsearch", "v1", developerKey=API_KEY)
# Ejecuta la búsqueda.
# 'q': el término de búsqueda
# 'cx': el ID de tu Custom Search Engine
# 'searchType': MUY IMPORTANTE, para especificar que buscas imágenes
# 'num': número de resultados (máx. 10 por solicitud, aunque puedes paginar)
res = service.cse().list(
q=query,
cx=CX,
searchType='image',
num=num_results
).execute()
# Extrae los resultados
items = res.get('items', [])
resultados_imagenes = []
for item in items:
resultados_imagenes.append({
'title': item.get('title'),
'link': item.get('link'), # URL directa de la imagen
'displayLink': item.get('displayLink'), # URL del sitio donde se encontró
'thumbnailLink': item['image'].get('thumbnailLink') if 'image' in item else None # URL de la miniatura
})
return resultados_imagenes
except Exception as e:
print(f"Ocurrió un error: {e}")
return []
# --- Ejemplo de uso ---
if __name__ == "__main__":
termino_busqueda = "Japan Mt Fuji"
imagenes_encontradas = buscar_imagenes_google(termino_busqueda, num_results=3)
if imagenes_encontradas:
print(f"Imágenes encontradas para '{termino_busqueda}':")
for i, imagen in enumerate(imagenes_encontradas):
print(f"--- Imagen {i+1} ---")
print(f"Título: {imagen.get('title')}")
print(f"URL: {imagen.get('link')}")
print(f"URL Miniatura: {imagen.get('thumbnailLink')}")
print("-" * 20)
else:
print("No se encontraron imágenes o hubo un error.") |