---
title: "Cómo raspar Pinterest en 2026"
slug: how-to-scrape-pinterest
date: 2025-06-09T11:57:32+00:00
modified: 2025-11-04T08:49:33+00:00
permalink: https://brightdata.es/blog/datos-web/how-to-scrape-pinterest
type: blog
---

[ Blog ](https://brightdata.es/blog "Blog") / [Datos web](https://brightdata.es/blog/datos-web)







 [Datos web](https://brightdata.es/blog/datos-web)

# Cómo raspar Pinterest en 2026

Aprende a extraer datos dinámicos de Pinterest utilizando Python, navegadores sin cabeza y APIs de scraper automatizadas para obtener resultados rápidos y escalables.

 10 min de lectura





 [ ![Jacob Nulty](https://media.brightdata.es/2024/12/Jacob-Nulty-50x50.jpg) ](https://brightdata.com/blog/authors/jake-nulty)

 [Jake Nulty

Technical Writer

 ](https://brightdata.com/blog/authors/jake-nulty)





 ![How to Scrape Pinterest blog image](https://media.brightdata.es/2025/02/How-to-Scrape-Pinterest.svg)





La extracción de datos de [Pinterest](https://www.pinterest.com/) es diferente de la mayoría de los [trabajos de scraping HTML](/blog/procedimientos/html-web-scraping). Pinterest genera todo su contenido de forma dinámica y no deja ninguna de sus estructuras de datos, como JSON, en la página.

Si decides seguirnos, aprenderás a recopilar datos de Pinterest utilizando los siguientes métodos:

- Extraer datos de Pinterest con Playwright
- Extraer datos de Pinterest con la API Scraper de Bright Data

## <a></a>¿Qué se puede extraer?

Si miras Pinterest en tu navegador, todos los pines están profundamente anidados dentro de un elemento `div` con `data-test-id="pinWrapper"`.

![Inspeccionar pasador](https://media.brightdata.com/2025/02/Inspect-Pin.png)Si podemos encontrar todos estos objetos en la página, podemos extraer todos sus datos, tales como:

- El título de cada pin.
- La url que apunta directamente al pin.
- La imagen del pin de los resultados de búsqueda.

## <a></a>Raspando Pinterest con Playwright

### <a></a>Primeros pasos

Hay un montón de grandes [bibliotecas de scraping en Python](/blog/datos-web/python-web-scraping-libraries), y vamos a utilizar Playwright. Primero, necesitas asegurarte de que tienes Playwright instalado. Puedes ver su documentación [aquí](https://playwright.dev/python/docs/intro). Playwright es uno de los mejores [navegadores headless](/blog/datos-web/best-headless-browsers) disponibles.

#### <a></a>Instalar dramaturgo

```none
pip install playwright

```

#### <a></a>Instalar los navegadores de Playwright

```none
playwright install

```

### <a></a>Raspado de las chinchetas reales

Ahora vamos a ver cómo extraer los pines de Pinterest. En el código siguiente, creamos dos funciones, `scrape_pins()` y `main()`. `scrape_pins()` abre un navegador y extrae datos de Pinterest. `main()` se utiliza como punto de entrada para el tiempo de ejecución asíncrono.

```none
import asyncio
from playwright.async_api import async_playwright
import json

user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"

async def scrape_pins(query):
    search_url = f"https://www.pinterest.com/search/pins/?q={query}&rs=typed"
    scraped_data = []

    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page(user_agent=user_agent)
        response = await page.goto(search_url)
        await asyncio.sleep(2)
        try:
            #find the pins on the page
            pins = await page.query_selector_all("div[data-test-id='pinWrapper']")

            #iterate through the pins and extract data
            for pin in pins:
                title_link = await pin.query_selector("a")
                pin_url = await title_link.get_attribute("href")
                title = await title_link.get_attribute("aria-label")
                img = await title_link.query_selector("img")
                img_src = await img.get_attribute("src")

                extracted_data = {
                    "title": title,
                    "url": pin_url,
                    "img": img_src
                }
                #add the data to our results
                scraped_data.append(extracted_data)
        except:
            print(f"Failed to scrape pins at {search_url}")
        finally:
            await browser.close()
    #everything has finished, return our scraped data
    return scraped_data

async def main():
    search_query = "office"
    office_results = await scrape_pins(search_query)

    with open(f"{search_query}-results.json", "w") as file:
        try:
            json.dump(office_results, file, indent=4)
        except Exception as e:
            print(f"Failed to save results: {e}")

if __name__ == "__main__":
    asyncio.run(main())

```

`scrape_pins()` realiza los siguientes pasos durante nuestro scrape:

- Crear nuestra url: `search_url`.
- Crea un array para guardar nuestros resultados, `scraped_data`.
- Abra una nueva instancia del navegador.
- Establece un `user_agent` personalizado para funcionar en modo headless. Sin él, Pinterest nos bloqueará.
- Esperamos dos segundos a que se cargue el contenido con `asyncio.sleep(2)`.
- Encontramos todos los pines visibles en la página utilizando este selector: `div[data-test-id='pinWrapper']`.
- Para cada pin, extraemos los siguientes datos:
    - `título`: El título del pin.
    - `url`: La url que lleva directamente al pin.
    - `img`: La imagen del pin que se muestra en los resultados de búsqueda.

He aquí algunos datos de muestra del scraper Playwright anterior.

```none
[
    {
        "title": "A minimalist office featuring a soothing color palette of whites, greys, and natural wood accents, creating a calm and spacious feel3",
        "url": "/pin/10203536650743650/",
        "img": "https://i.pinimg.com/236x/b3/21/e2/b321e2485da40c0dde2685c3a4fdcb56.jpg"
    },
    {
        "title": "a home office with two desks and an open door that leads to the outside",
        "url": "/pin/261912534574291013/",
        "img": "https://i.pinimg.com/236x/56/f1/29/56f129512885e1b3c9971b16f9445c9a.jpg"
    },
    {
        "title": "home office decor, blakc home office, dark home office, moody home office, small home office",
        "url": "/pin/60094976273327121/",
        "img": "https://i.pinimg.com/236x/ba/75/c9/ba75c9be7e635cce3ee80acdf70d6f9f.jpg"
    },
    {
        "title": "an office with a desk, chair and bookshelf in the middle of it",
        "url": "/pin/599682506666665720/",
        "img": "https://i.pinimg.com/236x/57/66/1d/57661dc80bebda3dfe946c070ee8ed13.jpg"
    },
    {
        "title": "a home office with green walls and plants on the shelves, along with a computer desk",
        "url": "/pin/1147080967585091410/",
        "img": "https://i.pinimg.com/236x/ce/e8/b7/cee8b74151b29605a80e0f61898c249d.jpg"
    },

```

## <a></a>Raspado de Pinterest con la API de Bright Data Scraper

Con nuestra [API Pinterest Scraper](/products/web-scraper/pinterest), puedes automatizar completamente este proceso y no tienes que preocuparte de navegadores sin cabeza, selectores ni nada por el estilo.

![Bright Data Pinterest Scraper](https://media.brightdata.com/2025/02/Bright-Data-Pinterest-Scraper-1024x515.png)Asegúrate de tener instalado [Python Requests](/blog/datos-web/python-requests-guide).

#### <a></a>Solicitudes de instalación

```none
pip install requests

```

Una vez configurada la llamada a la API, puedes lanzarla desde Python. A continuación, también tenemos dos funciones: `get_pins()` y `poll_and_retrieve_snapshot()`.

- `get_pins()`: Esta función toma una `palabra clave` junto con tu `api_key`. A continuación, crea y envía una solicitud a nuestra API de scraper. Esta solicitud desencadena una búsqueda en Pinterest de la palabra clave deseada.
- `poll_and_retrieve_snapshot()` toma tu `api_key` y el `snapshot_id`. Después comprueba cada 10 segundos si la instantánea está lista. Una vez que la instantánea está lista, se descargan los datos y salimos de la función.

```none
import requests
import json
import time

#function to trigger the scrape
def get_pins(api_key, keyword):
    url = "https://api.brightdata.com/datasets/v3/trigger"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    }
    params = {
        "dataset_id": "gd_lk0sjs4d21kdr7cnlv",
        "include_errors": "true",
        "type": "discover_new",
        "discover_by": "keyword",
    }
    data = [
        {"keyword":keyword},
    ]
    #trigger the scrape
    response = requests.post(url, headers=headers, params=params, json=data)
    #return the snapshot_id
    return response.json()["snapshot_id"]

def poll_and_retrieve_snapshot(api_key, snapshot_id, output_file="snapshot-data.json"):
    #create the snapshot url
    snapshot_url = f"https://api.brightdata.com/datasets/v3/snapshot/{snapshot_id}?format=json"
    headers = {
        "Authorization": f"Bearer {api_key}"
    }

    print(f"Polling snapshot for ID: {snapshot_id}...")

    while True:
        response = requests.get(snapshot_url, headers=headers)

        if response.status_code == 200:
            print("Snapshot is ready. Downloading...")
            snapshot_data = response.json()
            #write the snapshot to a new json file
            with open(output_file, "w", encoding="utf-8") as file:
                json.dump(snapshot_data, file, indent=4)
            print(f"Snapshot saved to {output_file}")
            break
        elif response.status_code == 202:
            print("Snapshot is not ready yet. Retrying in 10 seconds...")
        else:
            print(f"Error: {response.status_code}")
            print(response.text)
            break

        time.sleep(10)

if __name__ == "__main__":

    API_KEY = "YOUR-BRIGHT-DATA-API-KEY"
    KEYWORD = "office"

    snapshot_id = get_pins(API_KEY, KEYWORD)
    poll_and_retrieve_snapshot(API_KEY, snapshot_id)

```

He aquí algunos datos de muestra del archivo descargado. Dado que nuestra solicitud de activación tenía `"include_errors` `"true"`, el archivo también incluía pines con errores. Los datos de muestra a continuación incluyen dos pines de error, así como dos pines con datos buenos.

```none
[
    {
        "post_type": null,
        "timestamp": "2026-02-17T15:26:17.248Z",
        "input": {
            "url": "https://www.pinterest.com/pin/jh46IGe2",
            "discovery_input": {
                "keyword": "office"
            }
        },
        "warning": "Bad input. Wrong id!",
        "warning_code": "dead_page",
        "discovery_input": {
            "keyword": "office"
        }
    },
    {
        "post_type": null,
        "timestamp": "2026-02-17T15:26:18.757Z",
        "input": {
            "url": "https://www.pinterest.com/pin/4471026676503806548",
            "discovery_input": {
                "keyword": "office"
            }
        },
        "warning": "Bad input. Page does not exist.",
        "warning_code": "dead_page",
        "discovery_input": {
            "keyword": "office"
        }
    },
    {
        "url": "https://www.pinterest.com/pin/929782285570058239",
        "post_id": "929782285570058239",
        "title": "Essential Tips for Designing a Functional Small Office Space: Maximize Efficiency",
        "content": "17 Smart Tips for Designing a Productive Small Office Space",
        "date_posted": "2026-02-06T15:00:47.000Z",
        "user_name": "wellnesswink",
        "user_url": "https://www.pinterest.com/wellnesswink",
        "user_id": "929782422978147260",
        "followers": 232,
        "likes": 0,
        "categories": [
            "Explore",
            "Home Decor"
        ],
        "attached_files": [
            "https://i.pinimg.com/originals/c8/c0/d5/c8c0d5fb45352e40535db4510049a142.jpg"
        ],
        "image_video_url": "https://i.pinimg.com/originals/c8/c0/d5/c8c0d5fb45352e40535db4510049a142.jpg",
        "video_length": 0,
        "post_type": "image",
        "comments_num": 0,
        "discovery_input": {
            "keyword": "office"
        },
        "timestamp": "2026-02-17T15:26:19.502Z",
        "input": {
            "url": "https://www.pinterest.com/pin/929782285570058239",
            "discovery_input": {
                "keyword": "office"
            }
        }
    },
    {
        "url": "https://www.pinterest.com/pin/889812838892568569",
        "post_id": "889812838892568569",
        "title": "20 Modern Masculine Home Office Design Ideas for Men",
        "content": "Explore 25 chic home office decor ideas that blend style and functionality. Create a workspace you love and boost your productivity effortlessly!",
        "date_posted": "2026-01-27T07:11:38.000Z",
        "user_name": "artfullhouses",
        "user_url": "https://www.pinterest.com/artfullhouses",
        "user_id": "889812976285233957",
        "followers": 10,
        "likes": 0,
        "categories": [
            "Explore",
            "Home Decor"
        ],
        "attached_files": [
            "https://i.pinimg.com/originals/f1/cb/f7/f1cbf7b127db2bef2306ba19ffcc0646.png"
        ],
        "image_video_url": "https://i.pinimg.com/originals/f1/cb/f7/f1cbf7b127db2bef2306ba19ffcc0646.png",
        "video_length": 0,
        "hashtags": [
            "Mens Desk Decor",
            "Chic Home Office Decor",
            "Mens Desk",
            "Home Office Ideas For Men",
            "Office Ideas For Men",
            "Masculine Home Office Ideas",
            "Masculine Home Office",
            "Masculine Home",
            "Chic Home Office"
        ],
        "post_type": "image",
        "comments_num": 0,
        "discovery_input": {
            "keyword": "office"
        },
        "timestamp": "2026-02-17T15:26:20.069Z",
        "input": {
            "url": "https://www.pinterest.com/pin/889812838892568569",
            "discovery_input": {
                "keyword": "office"
            }
        }
    },

```

Como puedes ver, la API de raspado recopila muchos más datos que el raspado inicial que creamos con Playwright. Nuestra API [rastrea](/blog/procedimientos/web-crawling-with-python) Pinterest en busca de tu `palabra clave` y luego rastrea todos los pines individuales que encuentra durante el rastreo.

La comodidad no es la única ventaja de este enfoque. Nuestra API Pinterest Scraper extrae sus datos a un coste extremadamente bajo. Nuestro archivo total de resultados tenía casi 45.000 líneas y solo costó 0,97 dólares generarlo.

![Coste de Pinterest Scrape](https://media.brightdata.com/2025/02/Pinterest-Scrape-Cost.png)Contratar a alguien para crear un scraper de la misma calidad probablemente le costaría varios cientos de dólares y tendría que esperar días para obtener sus datos. Con nuestra API Scraper, obtendrá sus datos en cuestión de minutos a una fracción del coste.

## <a></a>Conclusión

Extraer datos de Pinterest no tiene por qué ser difícil. Tanto si construyes tu propio scraper con [Playwright](/blog/procedimientos/playwright-web-scraping) como si optas por una solución totalmente automatizada como nuestro Pinterest Scraper, el enfoque adecuado depende de tus necesidades.

Para una extracción de datos de Pinterest rápida, fiable y escalable, [la API Scraper de Bright Data](/products/web-scraper) elimina la molestia de manejar navegadores sin cabecera, proxies y CAPTCHAs -entregando datos estructurados sin esfuerzo.

✅ **Resultados más rápidos** – Obtenga datos en minutos, no en horas.
✅ **Rentabilidad** – Pague sólo por lo que extraiga
✅ S **in mantenimiento** – Evite tener que lidiar con solicitudes bloqueadas

Inicie su prueba gratuita hoy mismo y agilice su raspado de Pinterest con la API Web Scraper de Bright Data.



Contactar ventasPrueba gratuita![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Tabla de Contenidos













 [ ](https://news.ycombinator.com/submitlink?t=C%C3%B3mo+raspar+Pinterest+en+2026&u=https://brightdata.es/blog/datos-web/how-to-scrape-pinterest) [ ](https://www.linkedin.com/shareArticle?mini=true&title=C%C3%B3mo+raspar+Pinterest+en+2026&url=https://brightdata.es/blog/datos-web/how-to-scrape-pinterest) [ ](http://www.reddit.com/submit?title=C%C3%B3mo+raspar+Pinterest+en+2026&url=https://brightdata.es/blog/datos-web/how-to-scrape-pinterest)







##  Usted también puede estar interesado en

 [ ![OpenHuman with Bright Data](https://media.brightdata.es/2026/09/OpenHuman-with-Bright-Data.png) ](https://brightdata.es/blog/ai/openhuman-with-bright-data "Acceso Web Listo para Producción en OpenHuman a Través de la CLI de Bright Data")

 [AI



 ![Antonello Zanini](https://media.brightdata.es/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Acceso Web Listo para Producción en OpenHuman a Través de la CLI de Bright Data

Integra la CLI de Bright Data con OpenHuman para habilitar acceso web listo para producción y recopilación de datos para agentes de IA.



 09-Sep-2026

 14 min de lectura

 ](https://brightdata.es/blog/ai/openhuman-with-bright-data)

 [ ![Multimodal Web Scraping with MiniMax](https://media.brightdata.es/2026/09/Multimodal-Web-Scraping-with-MiniMax.png) ](https://brightdata.es/blog/datos-web/multimodal-web-scraping-with-minimax "Scraping Web Multimodal con MiniMax")

 [Datos web



 ![Antonello Zanini](https://media.brightdata.es/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Scraping Web Multimodal con MiniMax

Combina Bright Data Web Unlocker con la visión de MiniMax M3 para extraer datos estructurados de imágenes y capturas de pantalla de páginas web.



 09-Sep-2026

 5 min de lectura

 ](https://brightdata.es/blog/datos-web/multimodal-web-scraping-with-minimax)

 [ ![The 10 Best CLI Tools for Codex in 2026](https://media.brightdata.es/2026/08/The-10-Best-CLI-Tools-for-Codex-in-2026.png) ](https://brightdata.es/blog/ai/best-cli-tools-for-codex "Las 10 mejores herramientas CLI para Codex en 2026 – Probadas y clasificadas")

 [AI



 ![Daniel Shashko](https://media.brightdata.es/2022/04/Daniel-Shashko-2-50x50.png)

Daniel Shashko

Web Data &amp; AI Expert





### Las 10 mejores herramientas CLI para Codex en 2026 – Probadas y clasificadas

Las 10 herramientas CLI que hacen a Codex más rápido y capaz, comenzando con la Bright Data CLI para acceso web real desde dentro del sandbox.



 06-Sep-2026

 24 min de lectura

 ](https://brightdata.es/blog/ai/best-cli-tools-for-codex)
