Descargar foto de perfil de Instagram usando Python

Instagram es un servicio de redes sociales para compartir fotos y videos propiedad de Facebook, Python proporciona herramientas poderosas para el raspado web de Instagram.
 

Módulos requeridos e Instalación:
 

peticiones:

pip install requests

concepto: 
para un perfil de usuario determinado, abra view-source y busque «profile_pic_url_hd» . Para encontrar, presione ctrl+f y escriba “profile_pic_url_hd” , el enlace con él es nuestra información o foto de perfil. 
El enlace se verá así: 
 

https://scontent-bom1-1.cdninstagram.com/vp/d2df9b2d162969e87200984ee763cc27/5DC590F2/t51.2885-19/s320x320/61851740_845288152518430_7068999703693623296_n.jpg?_nc_ht=scontent-bom1-1.cdninstagram.com

A continuación se muestra la implementación paso a paso del proyecto:

Paso 1: importar todas las dependencias 
 

Python3

import requests
from bs4 import BeautifulSoup as bs
import json
import random
import os.path

Paso 2: solicita el nombre de usuario y envía una respuesta a Instagram. 
 

Python3

insta_url='https://www.instagram.com'
inta_username= input('enter username of instagram : ')
 
response = requests.get(f"{insta_url}/{inta_username}/")

Paso 3: si la respuesta es correcta, busque el enlace de la foto de perfil  

( Nota: reemplace ‘\\u0026’ con ‘&’ en string_url para eliminar la marca de tiempo de URL incorrecta o el error hash de URL incorrecto)
 

Python3

if response.ok:
    html=response.text
 
    bs_html=bs(html, features="lxml")
    bs_html=bs_html.text
    index=bs_html.find('profile_pic_url_hd')+21
 
    remaining_text=bs_html[index:]
    remaining_text_index=remaining_text.find('requested_by_viewer')-3
    string_url=remaining_text[:remaining_text_index].replace("\\u0026","&")
 
    print(string_url, "\n \n downloading..........")

Paso 4: Ahora, crea un bucle y descarga la foto. 
 

Python3

while True:
    filename='pic'+str(random.randint(1, 100000))+'.jpg'
    file_exists = os.path.isfile(filename)
 
    if not file_exists:
        with open(filename, 'wb+') as handle:
            response = requests.get(string_url, stream=True)
            if not response.ok:
                print(response)
            for block in response.iter_content(1024):
                if not block:
                    break
                handle.write(block)
    else:
        continue
    break
print("\n                downloading completed ..............")

Producción: 
 

Otro método: 
podemos descargar la foto de perfil de cualquier cuenta de Instagram usando el módulo instaloader simplemente dándole a Instagram el identificador del usuario.

Primero necesitamos instalar el módulo instaloader:

pip install instaloader 

Ejemplo:

Python3

import instaloader
 
ig = instaloader.Instaloader()
dp = input("Enter Insta username : ")
 
ig.download_profile(dp , profile_pic_only=True)

Salida:  la imagen de perfil se descargará en el mismo directorio cuando ingresemos la identificación de usuario de entrada.

Publicación traducida automáticamente

Artículo escrito por itsvinayak y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *