Muchas personas que están familiarizadas con Python saben que es un lenguaje de programación poderoso y versátil. Sin embargo, muchas personas no saben que Python también puede usarse para descargar imágenes de internet.
Sí, has leído bien: descargar imágenes con Python es totalmente posible y en realidad es bastante fácil de hacer. En este artículo, te mostraremos cómo descargar imágenes utilizando Python. Para descargar imágenes con Python, hay un módulo específico que se llama «requests».
El módulo «requests» es una biblioteca de Python que se usa para simplificar el manejo de solicitudes HTTP. El módulo «requests» hace que el trabajo de descargar imágenes sea bastante sencillo.
En primer lugar, debes asegurarte de que tienes el módulo «requests» instalado en tu computadora. Si no lo tienes, puedes descargarlo e instalarlo siguiendo las instrucciones de este sitio web: http://docs.python-requests.org/en/master/user/install/.
Una vez que tengas el módulo «requests» instalado, puedes empezar a descargar imágenes. Primero, necesitas encontrar la URL de la imagen que quieres descargar. Una forma fácil de hacerlo es encontrar la imagen en Google Imágenes. Luego, haz clic derecho en la imagen y selecciona «Copiar URL de la imagen».
Ahora que tienes la URL de la imagen, puedes escribir un pequeño programa en Python para descargarla. El código para hacer esto es el siguiente:
import requests
url ='https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
r = requests.get(url)
with open('googlelogo.png', 'wb') as f:
f.write(r.content)
Este pequeño programa hace una solicitud HTTP a la URL de la imagen que copiaste. Luego, escribe el contenido de la respuesta en un archivo llamado «googlelogo.png». Y eso es todo! Si abres el archivo «googlelogo.png», verás la imagen que descargaste.
Como puedes ver, descargar imágenes con Python es realmente muy fácil. El módulo «requests» hace todo el trabajo pesado por ti. Si quieres aprender más sobre el módulo «requests», echa un vistazo a la documentación oficial en este sitio web: http://docs.python-requests.org/en/master/.
Ejemplo para descargar imágenes con Python. Este es el código del vídeo.
from selenium import webdriver
url="https://www.casadellibro.com/libros-mas-vendidos"
driver = webdriver.Chrome('chromedriver.exe')
driver.maximize_window()
driver.get(url)
import requests
enlaces = driver.find_elements("xpath",'.//img[@class="product-img cdl-image"]')
i=0
for enlace in enlaces:
link = enlace.get_attribute('src')
imagenLibro=requests.get(link)
if imagenLibro.status_code == 200:
print(link)
i+=1
nombreImagen = 'Libro'+str(i)+'.jpg'
with open(nombreImagen, 'wb') as img:
img.write(imagenLibro.content)
Cómo Descargar Imágenes de una Web con Python
La automatización de tareas repetitivas es uno de los usos más comunes de Python, y descargar imágenes de una web no es una excepción. Ya sea que estés desarrollando un proyecto personal o trabajando en una tarea profesional, Python te permite simplificar esta tarea con unas pocas líneas de código.
Cuando hablamos de descargar imágenes de una web, existen varias técnicas que puedes utilizar. Una de las más populares es hacer uso de librerías especializadas que interactúan con navegadores web y sus elementos, como es el caso de Selenium. Selenium no solo es útil para pruebas automatizadas de web, sino también para la extracción de datos, incluyendo imágenes.
Para llevar a cabo la descarga de imágenes utilizando Selenium, necesitarás asegurarte de tener tanto la librería Selenium como un driver de navegador compatible, como chromedriver si estás utilizando Google Chrome.
El proceso es intuitivo: se inicia el navegador de forma automatizada, se navega hacia la página deseada y, luego, se identifican las imágenes a través de sus atributos HTML. Una vez identificadas, gracias a sus URLs fuente, se pueden descargar haciendo uso del módulo «requests» de Python, tal como se demostró anteriormente con un solo archivo de imagen.
El siguiente ejemplo ilustrativo muestra cómo puedes hacerlo paso a paso:
from selenium import webdriver
import requests
def descargar_imagenes_desde_web(url_web, driver_path, nombre_carpeta='imagenes_descargadas'):
# Inicializar el driver de Selenium
driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.get(url_web)
# Encontrar los elementos de imagen en la web
elementos_imagenes = driver.find_elements_by_xpath('.//img[@src]')
contador = 0
for img in elementos_imagenes:
src_imagen = img.get_attribute('src')
# Realizar la petición HTTP para descargar la imagen
respuesta = requests.get(src_imagen)
if respuesta.status_code == 200:
nombre_imagen = f"{nombre_carpeta}/Imagen_{contador}.jpg"
with open(nombre_imagen, 'wb') as archivo:
archivo.write(respuesta.content)
contador += 1
print(f"Descargada imagen: {src_imagen}")
driver.quit()
# Usar la función
url = "https://www.ejemplo.com"
ruta_driver_chrome = "tu_ruta/chromedriver.exe"
descargar_imagenes_desde_web(url, ruta_driver_chrome)
Como puedes observar, el script se encarga de localizar todas las imágenes disponibles en la página y las descarga una a una, almacenándolas localmente bajo un directorio que puedes especificar. Cabe destacar la importancia de respetar los términos de uso y los derechos de autor de las imágenes que descargas.
Ya sea que utilices la simpleza del módulo «requests» o la potencia de Selenium, Python ofrece las herramientas necesarias para descargar imágenes de una web de manera eficiente. Consulta siempre la documentación y las comunidades en línea para resolver dudas y obtener nuevos trucos y consejos.
Juande Marín
Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin