Tony Wang6 min de lecturaCómo scrapear Pinterest en 2026 (API y Python)
Scrapea Pinterest en 2026: Python DIY, no-code o una API estructurada para pines, tableros y búsquedas públicas, más la API oficial.
La forma más rápida de scrapear Pinterest en 2026 es llamar a una API estructurada de Pinterest que devuelve JSON normalizado — pines, tableros, perfiles y resultados de búsqueda — en lugar de llevar un navegador headless más allá de la allowlist de bots y el scroll infinito de Pinterest. Pinterest tiene su propia API v5, pero está diseñada para gestionar el contenido propio de una cuenta de empresa conectada, no para leer pines y tableros públicos arbitrarios. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde se rompe cada uno y los aspectos legales básicos.
¿Por qué scrapear datos de Pinterest?
- Investigación de tendencias e ideas — sigue lo que está creciendo en decoración, moda, comida o DIY antes de que llegue a su punto máximo en otros lugares.
- Conjuntos de datos de contenido visual — construye pares de imagen/descripción para modelos de visión por computadora o de recomendación a partir de pines públicos.
- Monitoreo de tableros de la competencia — observa qué tableros y pines está curando una marca competidora y cómo evolucionan sus seguidores.
- Pipelines de AI-vision y RAG — alimenta metadatos estructurados de pines (título, descripción, color dominante, dominio de origen) a agentes que razonan sobre tendencias visuales.
- Descubrimiento de afiliados y productos — encuentra pines que enlazan a páginas de producto y sigue qué dominios se repinean más.
¿Es legal scrapear Pinterest?
Opción 1: hacerlo tú mismo en Python (y por qué se rompe)
Pinterest renderiza las páginas de pines y tableros con datos incrustados en una etiqueta script (__PWS_DATA__ o similar), así que un scraper ingenuo parsea HTML en lugar de llamar a un endpoint documentado:
import requests
from bs4 import BeautifulSoup
import json, re
resp = requests.get(
"https://www.pinterest.com/patrontequila/el-cafecito/",
headers={"User-Agent": "Mozilla/5.0"},
)
soup = BeautifulSoup(resp.text, "html.parser")
script = soup.find("script", {"id": "__PWS_DATA__"})
data = json.loads(script.string) if script else None
Funciona en una demo y luego se rompe:
- Allowlist de bots — el
robots.txtde Pinterest bloquea cualquier user agent que no esté en su allowlist publicada, y el tráfico automatizado no aprobado se marca rápido, sin importar lo que el archivo permita técnicamente. - Scroll infinito, no paginación — los tableros, resultados de búsqueda y grids de pines de perfil se cargan mediante llamadas XHR disparadas por scroll con tokens de marcador, así que un cliente HTTP simple solo ve el primer lote.
- JSON incrustado frágil — la forma del payload de la etiqueta script cambia entre versiones de plantilla de página, así que los selectores y las rutas JSON se rompen con los rediseños.
- Páginas cargadas de imágenes — Pinterest está lleno de variantes
srcsete imágenes con carga diferida; elegir el tamaño correcto (736x,originals, etc.) desde HTML crudo es propenso a errores.
Opción 2: herramientas no-code o ya hechas
Los guardadores de pines por extensión de navegador y los creadores de scrapers visuales pueden exportar un tablero o resultado de búsqueda a CSV para una investigación puntual, pero siguen chocando con los mismos problemas de allowlist y paginación por scroll a cualquier volumen real, y no te dan campos predecibles para un pipeline.
Opción 3: una API estructurada de Pinterest
Para flujos de trabajo repetibles sobre datos públicos, una API de scraping de Pinterest devuelve JSON normalizado sin necesidad de ejecutar un navegador. Busca pines públicos por palabra clave:
curl "https://api.crawlora.net/api/v1/pinterest/search?query=minimalist+living+room" \
-H "x-api-key: $CRAWLORA_API_KEY"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/pinterest/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"query": "minimalist living room"},
)
for pin in resp.json()["data"]["pins"]:
print(pin.get("title"), pin.get("link"))
Una respuesta de búsqueda es JSON normalizado (consulta los docs para el esquema completo):
{
"code": 200,
"msg": "OK",
"data": {
"query": "minimalist living room",
"pins": [
{
"id": "21673641953485811",
"url": "https://www.pinterest.com/pin/21673641953485811/",
"title": "Minimalist Luxury Living Spaces That Look Clean But Still Cozy",
"description": "Minimalist Luxury Living Spaces can feel cozy when the room uses texture, lighting, and practical furniture instead of extra clutter.",
"image_url": "https://i.pinimg.com/736x/da/b7/2a/dab72a3f9f2b9f18274752facb0349ef.jpg",
"domain": "impactdriverdrill.com",
"link": "https://impactdriverdrill.com/minimalist-luxury-living-spaces/",
"board_name": "Løkken hus",
"pinner_username": "annlizeth9550"
}
]
}
}
Obtén un perfil público, sus pines, sus tableros y los pines de un tablero concreto:
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/pinterest"
user = requests.get(f"{base}/user/patrontequila", headers=h).json()["data"]
pins = requests.get(f"{base}/user/patrontequila/pins", headers=h).json()["data"]["pins"]
boards = requests.get(f"{base}/user/patrontequila/boards", headers=h).json()["data"]["boards"]
board = requests.get(f"{base}/board/patrontequila/el-cafecito", headers=h).json()["data"]
El campo url de un tablero (de la llamada a boards) es de donde sale el slug para /board/{username}/{slug} — necesitas la lista de tableros antes de poder obtener uno individual.
Obtén un pin concreto por id, o navega la taxonomía "Ideas" de Pinterest y trae los pines en tendencia de una categoría:
pin = requests.get(f"{base}/pin/52846995624279072", headers=h).json()["data"]
categories = requests.get(f"{base}/categories", headers=h).json()["data"]["categories"]
animals_id = next(c["id"] for c in categories if c["slug"] == "animals")
idea = requests.get(f"{base}/ideas/{animals_id}", headers=h).json()["data"]
Qué puedes recopilar
- Búsqueda — pines públicos por palabra clave: título, descripción, URL de imagen, color dominante, dominio y link de origen, nombre del tablero, username del pinner.
- Pin — detalle completo de un pin por id: lo anterior más número de comentarios, número de repines y fecha de creación.
- Usuario — campos de perfil público por username: nombre visible, bio, sitio web, número de seguidores/seguidos, número de pines/tableros, avatar.
- Pines/tableros de usuario — los pines o tableros de un perfil público, cada tablero con su propio número de pines/seguidores y su configuración de privacidad.
- Tablero — los metadatos de un tablero específico más una página de sus pines, direccionado por
username/slug. - Categorías e ideas — la taxonomía "Ideas" de nivel superior de Pinterest (10 categorías) y los pines públicos en tendencia bajo cada una.
Limitaciones
- No hay una API pública de búsqueda abierta por parte de Pinterest. La API v5 oficial está limitada por OAuth a los propios pines, tableros y anuncios de una cuenta conectada — no es un sustituto para leer contenido público arbitrario, que es justo para lo que están hechos los endpoints de búsqueda, tablero y perfil de arriba.
- Allowlist de bots. El
robots.txtde Pinterest deniega por defecto a los crawlers no listados; el tráfico automatizado no aprobado corre el riesgo de ser bloqueado sin importar que los datos sean públicos. - Scroll infinito y cursores. Los tableros, perfiles y resultados de búsqueda paginan mediante llamadas disparadas por scroll en lugar de simples números de página — una API gestionada absorbe eso en lugar de que tú lo repliques.
- El salto de username a slug. Obtener un tablero específico requiere su
slug, que viene de la lista de tableros del usuario, no solo del nombre del tablero. - Las identidades son datos personales. Usernames, nombres visibles y bios son datos personales bajo GDPR/CCPA — recopila solo campos públicos y no personales con una base legal.
Dónde se usa esto
- Investigación de tendencias — sigue las estéticas emergentes en hogar, moda y comida antes de que aparezcan en la demanda de búsqueda.
- Monitoreo de competidores y marcas — observa los tableros públicos y la actividad de pines de un competidor a lo largo del tiempo.
- Pipelines de contenido y datasets — alimenta imágenes y metadatos de pines públicos a modelos de visión o sistemas de recomendación.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: ejecuta cualquier URL pública en el Free Web Scraper, o revisa si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba el endpoint de búsqueda en el Playground, revisa el esquema en los docs de la API y consulta los precios. Mira también cómo scrapear Instagram y cómo scrapear TikTok para el resto del stack social visual, y es legal el web scraping.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Tiene Pinterest una API pública oficial?
Sí, Pinterest opera una API REST v5 oficial, pero está basada en OAuth y limitada a los propios pines, tableros y datos de anuncios de una cuenta de empresa conectada — no ofrece acceso de lectura abierto a pines, tableros o resultados de búsqueda públicos arbitrarios sin el consentimiento de esa cuenta.
¿Es legal scrapear pines y tableros públicos de Pinterest?
Scrapear datos estrictamente públicos y no personales cae en una categoría de menor riesgo, y hiQ v. LinkedIn determinó que acceder a datos públicos no viola la CFAA en EE. UU. Sin embargo, las pautas para desarrolladores de Pinterest prohíben el scraping automatizado salvo permiso expreso, y el robots.txt deniega por defecto a los bots no listados. Esto no es asesoría legal — revisa tú mismo los términos de Pinterest.
¿Por qué se rompe un scraper de Pinterest hecho a mano?
Pinterest aplica una allowlist de bots en su robots.txt que bloquea a los crawlers no listados, pagina tableros y resultados de búsqueda mediante llamadas disparadas por scroll en lugar de simples números de página, e incrusta los datos de la página en etiquetas script cuya forma cambia entre versiones de plantilla.
¿Cómo obtengo los pines de un tablero si solo tengo un username?
Primero llama al endpoint de tableros del usuario para obtener el slug de cada tablero desde su campo url. Luego pasa ese par username/slug al endpoint de tablero, que devuelve los metadatos del tablero más una página de sus pines.
¿Qué campos devuelve una API de pines de Pinterest?
Los campos típicos incluyen el id y la url del pin, título, descripción, url de imagen, color dominante, dominio de origen y enlace saliente, nombre del tablero y username del pinner; una consulta de un solo pin añade número de comentarios, número de repines y fecha de creación.
¿Puedo encontrar pines en tendencia con el endpoint de categorías de Pinterest?
Sí. El endpoint de categorías devuelve la taxonomía «Ideas» de nivel superior de Pinterest (unas 10 categorías), y el id de cada categoría se puede pasar al endpoint de ideas para obtener los pines públicos de esa categoría.
¿Qué debo evitar al recopilar datos de Pinterest?
Evita recopilar cualquier cosa que esté detrás de un inicio de sesión, trata los usernames y las bios como datos personales bajo GDPR/CCPA, no sortees la allowlist de bots de Pinterest, y quédate con campos públicos y no personales con una base legal para recopilarlos.