Script de Python para descargar automáticamente imágenes de Instagram

En este tutorial, aprenderás a crear un script en Python para descargar imágenes de Instagram de forma automática. Este script utilizará la API de Instagram para buscar y descargar imágenes basadas en un hashtag o una cuenta de usuario de Instagram.

Requisitos previos

Antes de comenzar, asegúrate de tener los siguientes requisitos:

  • Python instalado en tu ordenador
  • Una cuenta de desarrollador de Instagram
  • El módulo requests de Python instalado
  • El módulo json de Python instalado
  • El módulo os de Python instalado
  • El módulo urllib de Python instalado

Paso 1: Crear una cuenta de desarrollador de Instagram

Para poder utilizar la API de Instagram, necesitarás crear una cuenta de desarrollador de Instagram. Sigue los siguientes pasos:

  1. Visita https://www.instagram.com/developer/
  2. Inicia sesión con tu cuenta de Instagram
  3. Crea una nueva aplicación
  4. Copia y pega el Client ID y el Client Secret para usarlos en el script

Paso 2: Crear una función para autenticar la API de Instagram

Antes de poder buscar imágenes utilizando la API de Instagram, necesitarás autenticarte con tu cuenta de desarrollador. Crea una función en Python para autenticar la API de Instagram utilizando el Client ID y el Client Secret que copiaste en el paso anterior:


import requests
import json

def authenticate(client_id, client_secret):
    url = 'https://api.instagram.com/oauth/access_token'
    payload = {
        'client_id': client_id,
        'client_secret': client_secret,
        'grant_type': 'client_credentials'
    }
    response = requests.post(url, data=payload)
    json_data = json.loads(response.text)
    access_token = json_data['access_token']
    return access_token

En esta función, estamos utilizando el módulo de requests para enviar una solicitud POST a la API de Instagram. Luego, utilizamos el módulo json para analizar la respuesta JSON y extraer el access_token que necesitaremos para hacer solicitudes a la API de Instagram.

Paso 3: Crear una función para descargar imágenes basadas en un hashtag

Una vez que hayas autenticado la API de Instagram, puedes comenzar a buscar imágenes basadas en un hashtag. Crea una función en Python para descargar imágenes basadas en un hashtag:


import requests
import json
import os
import urllib

def download_images_by_hashtag(access_token, hashtag, count):
    url = 'https://api.instagram.com/v1/tags/' + hashtag + '/media/recent'
    params = {
        'access_token': access_token,
        'count': count
    }
    response = requests.get(url, params=params)
    json_data = json.loads(response.text)
    for data in json_data['data']:
        image_url = data['images']['standard_resolution']['url']
        image_name = data['id'] + '.jpg'
        urllib.request.urlretrieve(image_url, image_name)

En esta función, estamos utilizando la API de Instagram para buscar las últimas imágenes publicadas con un hashtag específico. Luego, utilizamos el módulo os para crear una carpeta para almacenar las imágenes descargadas y el módulo urllib para descargar las imágenes en la carpeta.

Paso 4: Crear una función para descargar imágenes basadas en una cuenta de usuario

También puedes descargar imágenes basadas en una cuenta de usuario de Instagram. Crea una función en Python para descargar imágenes basadas en una cuenta de usuario:


import requests
import json
import os
import urllib

def download_images_by_user(access_token, username, count):
    url = 'https://api.instagram.com/v1/users/search?q=' + username + '&access_token=' + access_token
    response = requests.get(url)
    json_data = json.loads(response.text)
    user_id = json_data['data'][0]['id']
    url = 'https://api.instagram.com/v1/users/' + user_id + '/media/recent'
    params = {
        'access_token': access_token,
        'count': count
    }
    response = requests.get(url, params=params)
    json_data = json.loads(response.text)
    for data in json_data['data']:
        image_url = data['images']['standard_resolution']['url']
        image_name = data['id'] + '.jpg'
        urllib.request.urlretrieve(image_url, image_name)

En esta función, estamos utilizando la API de Instagram para buscar el ID de usuario de una cuenta de usuario específica. Luego, utilizamos el ID de usuario para buscar las últimas imágenes publicadas por esa cuenta de usuario. Finalmente, utilizamos el módulo urllib para descargar las imágenes en la carpeta.

Paso 5: Ejecutar el script

Una vez que hayas creado las funciones anteriores, puedes ejecutar el script para descargar imágenes automáticamente. Aquí hay un ejemplo de cómo puedes utilizar las funciones:


client_id = 'TU_CLIENT_ID'
client_secret = 'TU_CLIENT_SECRET'
access_token = authenticate(client_id, client_secret)
hashtag = 'python'
count = 10
download_images_by_hashtag(access_token, hashtag, count)
username = 'instagram'
count = 10
download_images_by_user(access_token, username, count)

En este ejemplo, estamos autenticando la API de Instagram utilizando el Client ID y el Client Secret que obtuvimos al crear una cuenta de desarrollador de Instagram. Luego, estamos descargando las últimas 10 imágenes publicadas con el hashtag "python" y las últimas 10 imágenes publicadas por la cuenta de usuario "instagram".

En este tutorial, aprendiste a crear un script en Python para descargar automáticamente imágenes de Instagram. Junto con las funciones que creamos, también aprendiste cómo autenticar la API de Instagram y cómo buscar imágenes basadas en un hashtag o una cuenta de usuario de Instagram. Ahora puedes utilizar este script para descargar imágenes automáticamente y explorar la API de Instagram aún más.

No te pierdas los últimos artículos:

Web Scraping con Python y BeautifulSoup para Principiantes

Web Scraping con Python y BeautifulSoup para Principiantes

Bienvenido a esta guía sobre Web Scraping con Python y BeautifulSoup, diseñada especialmente para principiantes. Si estás buscando aprender a extraer datos de sitios web de manera eficiente, seguro que ...
Curso de Python Básico Gratis

Curso de Python Básico Gratis

Módulo 1: Introducción a Python Nuestra meta principal es que, al final de este curso, tengas una sólida comprensión de los fundamentos de Python y estés listo para crear tus ...
Sistemas Expertos: ¿Qué son y para qué sirven?

Sistemas Expertos: ¿Qué son y para qué sirven?

Los sistemas expertos representan una rama fascinante de la inteligencia artificial, diseñada para emular la toma de decisiones de un humano experto en un campo particular. Estas herramientas avanzadas combinan ...
La Historia de la Inteligencia Artificial contada en Años

La Historia de la Inteligencia Artificial contada en Años

¿Cómo comenzó todo? Echemos un ojo a la historia de la IA a lo largo del tiempo. Desde 1950 hasta 2024. El artículo es largo, usa la tabla de contenidos ...
¿Qué es el meta-aprendizaje?

¿Qué es el meta-aprendizaje?

El mundo de la Inteligencia Artificial (IA) está en constante evolución, y una de las áreas más intrigantes y prometedoras es el metaaprendizaje. Pero, ¿qué es exactamente el metaaprendizaje y ...