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:
- Visita https://www.instagram.com/developer/
- Inicia sesión con tu cuenta de Instagram
- Crea una nueva aplicación
- 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.