La foto de perfil es uno de los elementos principales de cualquier cuenta de redes sociales, pero las aplicaciones como Instagram no te permiten verla ni descargarla. Este proceso se puede lograr fácilmente utilizando una herramienta de automatización web como Selenium con Python.

Aprende a usar este dúo poderoso para interactuar con cualquier elemento de una página web, automatizarlo y ahorrarte un tiempo invaluable al invertir en tareas productivas. ¿Y la mejor parte? ¡Construye esto sin siquiera iniciar sesión o tener una cuenta de Instagram!

El proceso de construcción de algoritmos

La construcción de algoritmos se refiere al proceso de identificar el problema y enumerar los pasos que el programa necesita para automatizar. Los diferentes pasos necesarios para descargar una imagen de perfil son:

  1. Tomar el nombre de usuario de un perfil como entrada
  2. Abre Google Chrome
  3. Visita el perfil de Instagram
  4. Descarga la foto de perfil

Esto sirve como el algoritmo del enunciado del problema.

Este proyecto utiliza los siguientes módulos y herramientas de Python.

instagram viewer

1. Módulo Urllib

Urllib es un módulo de Python que se usa para manejar URL de Internet. Va a utilizar este módulo para descargar la imagen de perfil de la cuenta desde su URL de origen. Si Urllib no está presente en su sistema, puede instalarlo usando el comando pip instalar urllib.

2. Módulo de tiempo

Este módulo, aunque no es obligatorio, puede hacer que la compilación falle si su conexión a Internet es lenta o el contenido de la página web no se carga durante el tiempo de interacción del programa Python con el página web. La función delay() nos ayuda a poner un pequeño retraso para que la compilación no falle.

3. Módulo de selenio

Una de las herramientas de automatización de navegadores de código abierto más populares es Selenium. Está disponible como un paquete de Python compatible con varios navegadores, como Google Chrome, Microsoft Edge, Safari y Mozilla Firefox. Para instalar Selenium en su entorno de Python, abra su Terminal y ejecutarpip instalar selenio.

4. WebDriver

Un controlador web es una herramienta utilizada por Selenium que establece una conexión entre el programa y cualquier sitio web. Diferentes tipos de controladores web están disponibles según el navegador que desee automatizar. Para esta compilación, utilizará el navegador Google Chrome. Para instalar el controlador web para Chrome:

  1. Compruebe la versión del navegador que está utilizando visitando el Menú (3 puntos) >Ayuda > Acerca de Google Chrome.
  2. Tenga en cuenta la versión del navegador.
  3. Visite la página de descargas de ChromeDriver - WebDriver para Chrome.
  4. Seleccione la opción que coincida con su número de versión de las versiones actuales de ChromeDriver.
  5. Elija y descargue el archivo de acuerdo a su sistema operativo.
  6. Extraiga el archivo descargado y colóquelo en la misma carpeta que su programa Python. Esto será útil para establecer la ruta durante la codificación.

Cómo inspeccionar código para automatizar cualquier aspecto de una página web

Para cualquier proceso de automatización web que use Selenium y Python, es esencial tener una comprensión básica de la web y sus tecnologías. El primer paso es ganar una introducción a html seguido por comprender las hojas de estilo en cascada (CSS). Aquí es donde te familiarizarás con el concepto de ids y clases.

Los identificadores y las clases son nombres únicos que se dan a un elemento o conjunto de elementos (etiquetas) respectivamente. Al usar estos, ubica el elemento requerido e instruye al programa Python para que lo apunte específicamente. Para inspeccionar el código y localizar la imagen de perfil:

  1. Abra la página web de la cuenta de Instagram.
  2. Haga clic en el navegador Menú > Más herramientas > Herramientas de desarrollo o usa el atajo Ctrl + Mayús + I para activar el Herramientas de desarrollo vista.
  3. Haga clic y seleccione el Selector de elementos (icono del cursor del mouse) en la esquina izquierda de la ventana y colóquelo sobre cualquier parte de la página web para saltar a esa sección del código.
  4. Es importante tener en cuenta que las imágenes de perfil de una cuenta pública y una cuenta privada se configuran de manera diferente. Pase el cursor sobre la foto de perfil de una cuenta pública. El atributo de clase para el perfil público es _aa8j.
  5. Repita el paso anterior para un perfil privado. El atributo de clase es _aadp.

Puede usar este procedimiento para comprender cualquier página web y apuntar a cualquier elemento para la automatización.

Cómo construir el descargador de fotos de perfil de Instagram

Siga estos pasos para crear el descargador.

  1. Importe los módulos necesarios en el entorno de Python.
    de selenio importar controlador web
    importar tiempo
    importar urllib.request
  2. Usando la función de entrada, obtenga el nombre de usuario del perfil cuya imagen de perfil se va a descargar y guárdelo en una variable llamada nombre de usuario.
    #ingresar el nombre de usuario del perfil cuya foto de perfil se va a descargar 
    nombre de usuario = entrada ("Introduzca el nombre de usuario del perfil: ")
  3. Inicialice el controlador web creando un objeto del mismo y pasando su ruta del sistema de archivos.
    #creando un objeto de chromedriver 
    cd='chromedriver.exe'
  4. Utilizar el controlador web. Cromo función para iniciar el navegador Google Chrome.
    #abrir navegador google chrome 
    controlador = controlador web. Cromo(discos compactos)
  5. La URL de cualquier cuenta de Instagram tiene el formato https://www.instagram.com/ seguido del nombre de usuario. Establezca la URL del perfil como,
    #estableciendo la URL
    dirección URL ='https://www.instagram.com/'
    url_p=url+usuario_h
  6. Pase la URL completa del perfil de Instagram a visitar a la función get().
    #abrir el perfil 
    conductor.obtener(url_p)
  7. Establezca un retraso recomendado opcional para que la página web se cargue por completo.
    #retraso para la carga del contenido de la página
    tiempo.dormir(5)
  8. Use el bloque probar-excepto para ubicar y determinar si la imagen de perfil pertenece a un perfil público. Esto se hace usando el atributo de clase en la expresión XPath. En caso de falla, use el bloque excepto para buscar la foto de perfil de una cuenta privada.
    probar:
    #si el perfil es público, busque la imagen con la clase _aa8j
    image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    excepto:
    #si el perfil es privado, busque la imagen con la clase _aadp
    image=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Usando get_attribute(), obtenga el atributo src de la imagen. Esto devuelve el enlace de la imagen.
    #almacenar el enlace de descarga de la imagen 
    img_link=imagen.get_attribute('origen')
  10. Establezca la ruta y la extensión del archivo descargado. Por ejemplo, puede configurar la imagen para que se descargue en la unidad D: de su sistema de archivos en formato JPG como.
    #establecer la ruta del archivo descargado 
    camino ="D:\\"+nombre de usuario+".jpg"
  11. Descargue la imagen pasando el enlace de la imagen de perfil como fuente y la ruta de la carpeta del sistema local como destino a la función urlretrieve().
    #descargar imagen al destino requerido
    urllib.solicitud.urlretrieve(img_enlace,sendero)
  12. Visite la carpeta y vea que la imagen de perfil se ha descargado. Opcionalmente, también puede mostrar la ruta donde se ha descargado la imagen de perfil.
    #mostrando la ruta de la foto de perfil descargada 
    impresión("La foto de perfil ha sido descargada en: "+ruta)

Código fuente final para el descargador de fotos de perfil de Instagram usando Python

Reuniéndolo todo, obtienes:

#importando los módulos requeridos
de selenio importar controlador web
importar tiempo
importar urllib.request
#ingresar el nombre de usuario del perfil cuya foto de perfil se va a descargar
usuario_h=entrada("Introduzca el nombre de usuario del perfil: ")
#estableciendo la URL
dirección URL ='https://www.instagram.com/'
url_p=url+usuario_h
#creando objeto de chromedriver
cd='chromedriver.exe'
#abrir google
controlador = controlador web. Cromo(discos compactos)
#abrir el perfil
conductor.obtener(url_p)
#retraso para la carga del contenido de la página
tiempo.dormir(5)
probar:
#si el perfil es público, busque la imagen con la clase _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
excepto:
#si el perfil es privado, busque la imagen con la clase _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')

#almacenar el enlace de descarga de la imagen
img_link=imagen.get_attribute('origen')

Aplicaciones de Automatización Web

La automatización no solo lo ayuda a ahorrar tiempo, dinero y esfuerzo, sino que también garantiza la finalización de las tareas y evita errores. Utilice esta técnica para automatizar el inicio de sesión de diferentes sitios web, realizar copias de seguridad de servidores en la nube, programar mensajes, desear cumpleaños en plataformas de redes sociales, crear publicaciones, publicar tweets y mucho más.