El código me ayudó a descargar muchas imágenes de google. Solía funcionar hace unos días y ahora, de repente, el código se rompe.
Código:
# importing google_images_download module
from google_images_download import google_images_download
# creating object
response = google_images_download.googleimagesdownload()
search_queries = ['Apple', 'Orange', 'Grapes', 'water melon']
def downloadimages(query):
# keywords is the search query
# format is the image file format
# limit is the number of images to be downloaded
# print urs is to print the image file url
# size is the image size which can
# be specified manually ("large, medium, icon")
# aspect ratio denotes the height width ratio
# of images to download. ("tall, square, wide, panoramic")
arguments = {"keywords": query,
"format": "jpg",
"limit":4,
"print_urls":True,
"size": "medium",
"aspect_ratio": "panoramic"}
try:
response.download(arguments)
# Handling File NotFound Error
except FileNotFoundError:
arguments = {"keywords": query,
"format": "jpg",
"limit":4,
"print_urls":True,
"size": "medium"}
# Providing arguments for the searched query
try:
# Downloading the photos based
# on the given arguments
response.download(arguments)
except:
pass
# Driver Code
for query in search_queries:
downloadimages(query)
print()
Registro de salida:
Artículo no .: 1 -> Nombre del artículo = Apple Evaluando ... Iniciando la descarga ...
Lamentablemente, los 4 no se pudieron descargar porque algunas imágenes no se podían descargar. ¡0 es todo lo que tenemos para este filtro de búsqueda!
Errores: 0
Artículo no .: 1 -> Nombre del artículo = Naranja Evaluación ... Iniciando descarga ...
Lamentablemente, los 4 no se pudieron descargar porque algunas imágenes no se podían descargar. ¡0 es todo lo que tenemos para este filtro de búsqueda!
Errores: 0
Artículo no .: 1 -> Nombre del artículo = Uvas Evaluando ... Iniciando descarga ...
Lamentablemente, los 4 no se pudieron descargar porque algunas imágenes no se podían descargar. ¡0 es todo lo que tenemos para este filtro de búsqueda!
Errores: 0
Artículo no .: 1 -> Nombre del artículo = melón de agua Evaluando ... Iniciando la descarga ...
Lamentablemente, los 4 no se pudieron descargar porque algunas imágenes no se podían descargar. ¡0 es todo lo que tenemos para este filtro de búsqueda!
Errores: 0
Esto realmente crea una carpeta pero no contiene imágenes.
fuente
Respuestas:
Parece que hay un problema con el paquete. Vea estos PR abiertos: PR1 y PR2
fuente
Creo que Google está cambiando el DOM. El elemento class = "rg_meta notranslate" ya no existe. Se cambia a class = "rg_i ..."
fuente
De hecho, el problema ha aparecido no hace mucho tiempo, ya hay un montón de problemas similares de Github:
Desafortunadamente, no hay una solución oficial, por ahora, podría usar la solución temporal que se proporcionó en las discusiones.
fuente
La razón por la que esto no funciona es porque Google cambió la forma en que lo hacen todo, por lo que ahora necesita la api_key incluida en la cadena de búsqueda. Como resultado de estos paquetes, como google-images-download ya no funciona, incluso si usa la versión 2.8.0 porque no tienen marcador de posición para insertar la cadena api_key que debe registrar en Google para obtener sus 2500 descargas gratuitas por día.
Entonces, la mejor manera de hacerlo ahora es usar el paquete pip google-search-results y proporcionar su api_key como parte de los parámetros de consulta.
donde proporciona su clave API usted mismo y luego llama:
Esto devuelve una cadena JSON con el enlace a todas las URL de imágenes y luego simplemente las descarga directamente.
fuente