Para poder usar esta biblioteca, debe habilitar la API de búsqueda personalizada de Google, generar credenciales de clave API y establecer un proyecto:
Visite https://console.developers.google.com y cree un proyecto.
Visite https://console.developers.google.com/apis/library/customsearch.googleapis.com y habilite "API de búsqueda personalizada" para su proyecto.
Visite https://console.developers.google.com/apis/credentials y genere credenciales clave de API para su proyecto.
Visite https://cse.google.com/cse/all y en el formulario web donde crea/edita su opción de "búsqueda de imágenes" de motor de búsqueda personalizado y para la opción "Sitios para buscar" Seleccione "Busque toda la web, pero enfatiza Sitios incluidos ".
Después de configurar su cuenta de Google Developers y el proyecto, debería haber recibido la clave API de desarrolladores y el Proyecto CX.
Instale el paquete de pypi.org:
> PIP Instale Google-Images-Search
# sin ambiente variables:> gimages -k __your_dev_api_key__ -c __your_project_cx__ Search -q cachorros
# con variables de entorno:> exportar gcs_developer_key = __ your_dev_api_key __> exportar gcs_cx = __ your_project_cx __ >> búsqueda de gimages -q cachorros
# Search SOLO (sin descarga y cambio de tamaño):> Gimages Search -Q Puppies
# Buscar y descargar solo (sin cambiar el tamaño):> Gimages Search -q Puppies -D/Path/On/Your/Drive/Where/Images/debe/Be/Descargar
# Buscar, descargar y cambiar el tamaño:> Gimages Search -q Puppies -D / Path / -W 500 -H 500
Desde Google_Images_Search Import GoogleimagesSearch# Puede proporcionar la clave API y CX usando argumentos,# o puede configurar variables de entorno: gcs_developer_key, gcs_cxgis = googleimagessearch ('your_dev_api_key', 'Your_project_CX')# Las parámetros de búsqueda definidos# opción para parámetros de búsqueda común se muestran de búsqueda comúnmente se muestran parámetros de búsqueda comunes se muestran parámetros de búsqueda comunes se muestran de parámetros de búsqueda A continuación para una referencia fácil.# para parámetro marcado con '##':# - Multiselect actualmente no es factible. Elija una sola opción#: este parámetro también se puede omitir desde _search_params si no desea definir ningún valor_search_params = {'q': '...', 'num': 10, 'fileType': 'jpg | gif | png ',' derechos ':' cc_publicdomain | cc_attribute | cc_sharealike | cc_noncommercial | cc_nonderived ',' safe ':' activo | high | mediano | apagado | safeUndefined ', ##' imgtype ':' clipart | face | linealT | stock | Photo | animado | imgTypeDefined ', ##' imgsize ':' enorme | icono | grande | mediano | pequeño | xlarge | xxlarge | imgsizeuDefined ', ##' imgdominantColor ':' negro | azul | gris | verde | naranja | Pink | Purple | Red | Teal | White | Yellow | IMGDOMINANTCOLORUNDEFINED ', ##' IMGCOLORTYPE ':' COLOR | GRIS | MONO | trans | imgcolortypeDefined '##}#Esto solo buscará imágenes: Gis.Search (Search_Params = _Search_Params )# Esto buscará y descargará: gis.search (seech_params = _search_params, path_to_dir = '/path/')# Esto buscará, descargará y cambiará: gis.search (search_params = _search_params, path_to_dir = '/rath/', width, width, width = 500, altura = 500) # Buscar primero, luego descargue y cambie el tamaño después: GIS.Search (Search_Params = _Search_Params) para la imagen en GIS.Results (): Image.URL # Image directo urlimage.referrer_url # IMAGRER URL (fuente) Image.Download ('/Path/') # Descargar ImageImage.Resize (500, 500) # RESEA DESEA
A veces desea guardar imágenes con el nombre del archivo de su elección.
Desde Google_Images_Search import googleimagessearchgis = googleimagessearch ('Your_dev_api_key', 'Your_Project_CX') _ Search_Params = {...} GIS.Search (search_params = _Search_Params, path_to_dir = '...',,, custom_image_name = 'my_image')
El límite de API de Google es de 10 imágenes por solicitud.
Eso significa que si desea 123 imágenes, se dividirá internamente en 13 solicitudes.
Tenga en cuenta que obtener 123 imágenes tomará un poco más de tiempo si la validación de la imagen está habilitada.
Desde Google_Images_Search import googleimagessearchgis = googleimagessearch ('your_dev_api_key', 'your_project_cx') _ search_params = {'q': '...', 'num': 123, }# Obtenga las primeras 123 imágenes: GIS.Search (search_params = _search_params)# Tome las siguientes 123 imágenes de Google Images Búsqueda: GIS.NEXT_PAGE () para la imagen en GIS.Results ():::::: ...
Cada URL de imagen se valida por defecto.
Eso significa que cada URL de imagen se verificará si los encabezados se pueden obtener y validar.
Con eso, no necesita desconfiar sobre qué URL de imagen es realmente descargable o no.
La desventaja es el tiempo necesario para validar.
Si lo prefiere, puede apagarlo.
Desde Google_Images_Search import googleimagessearch# apague la validación con "validate_images" agrumentgis = googleimagessearch ('your_dev_api_key', 'your_project_cx', validate_images = false)
Por defecto, ProgressBar no está habilitado.
Solo en CLI ProgressBar está habilitado de forma predeterminada utilizando la biblioteca CRUSSES.
En un modo programático, se puede habilitar de dos maneras:
Uso del modo contextual (maldiciones)
Usando su función de barra de progreso personalizada
Desde Google_Images_Search Import GoogleImagessearch# usando su función de progreso personalizado de FunctionDef my_progressbar (url, progreso): print (url + '' + progreso + '%') gis = googleimagessearch ('your_dev_api_key', 'Your_project_CX', progressbar_fn = my_progressbar) _Search_Params = {{{. ..} gis.search (search_params = _search_params)# usando el modo contextual (curses) con googleimagessearch ('Your_dev_api_key', 'Your_Project_CX') como GIS: _Search_Params = {...} Gis.Search (búsqueda_params = _Search_params) ...
Desde Google_Images_Search import googleimagessearch desde io import bytesiofrom pil Image Imagen# En este caso estamos utilizando PIL para mantener el byteSio como un objeto de imagen# de esa manera no tenemos que esperar el disco Guardar / escribir tiempos# La imagen simplemente se mantiene en Memoria# Este ejemplo debe mostrar 3 imágenes de cachorros! gis = googleimagessearch ('your_dev_api_key', 'your_project_cx') my_bytes_io = bytesio () gis.search ({'q': 'cachorro', 'num': 3}) para la imagen en gis.results ():# Aquí le decimos al objeto bytesio que regrese a la dirección 0my_bytes_io.seek (0)# tomar imagen sin procesar dataAw_image_data = image.get_raw_data ()# Esta función escribe los datos de imagen sin procesar a objetos.Copy_To ( my_bytes_io, raw_image_data)# o sin los datos sin procesar que se tomarán automáticamente# dentro del copy_to () metodImage.Copy_to (my_bytes_io)# Volvemos para abordar 0 nuevamente para que PIL pueda leerlo desde el inicio a la finalización Cree una imagen temporal ObjectTemp_img = Image.open (my_bytes_io) # muéstrala en el sistema predeterminado ViewerTemp_img.show ()