Jak zeskrobać dane o trendach na Pinterest do badań ecommerce

Pinterest to kopalnia sygnałów popytu — i jeden z trudniejszych celów, ponieważ nie pozostawia JSON na stronie. Oto jak renderować, wybierać piny, śledzić trendy i unikać blokady w trybie bezgłowym.

Pinterest to silnik sygnałów popytu: to, co ludzie zapisują teraz, przewiduje, co kupią w następnym sezonie, co sprawia, że jego piny, tablice i sugestie wyszukiwania są naprawdę użyteczne dla badań ecommerce i treści. Jest to również jeden z bardziej kłopotliwych celów, ponieważ w przeciwieństwie do większości rynków nie dostarcza żadnych uporządkowanych danych na stronie. Wszystko jest renderowane dynamicznie i nie ma schludnego bloku JSON do wyodrębnienia za pomocą regex. To oznacza, że najpierw renderujesz, a potem czytasz DOM. Ten przewodnik obejmuje metodę renderowania i wybierania, jak wydobywać sygnały trendów i słów kluczowych oraz wybory proxy i nagłówków, które chronią tryb bezgłowy przed blokadą. Pracuj zgodnie z warunkami Pinterest i trzymaj się danych publicznych.

Dlaczego sztuczka z ukrytym JSON nie działa tutaj

Na wielu stronach dane znajdują się w zmiennej JavaScript w źródle, więc jedno proste żądanie i regex wystarczą. Pinterest generuje całą swoją zawartość po stronie klienta i nie pozostawia tych struktur na stronie. Jeśli pobierzesz surowy HTML, piny nie są w nim — są wstrzykiwane po uruchomieniu JavaScript. Dlatego niezawodnym podejściem jest przeglądarka bezgłowa (Playwright działa dobrze), która ładuje stronę, czeka na zawartość, a następnie wyciąga z żywego DOM. Piny są głęboko zagnieżdżone, ale konsekwentnie oznaczone: każdy znajduje się wewnątrz div z data-test-id="pinWrapper", co jest znacznie bardziej stabilnym punktem zaczepienia niż haszowana nazwa klasy.

Renderowanie i wybieranie pinów

Najważniejszy szczegół: ustaw prawdziwy User-Agent dla desktopu. W trybie bezgłowym Pinterest blokuje domyślny UA automatyzacji, a zamiana na normalny ciąg Chrome często jest różnicą między pustą listą a pełną stroną pinów. Załaduj URL wyszukiwania, daj chwilę na renderowanie zawartości, a następnie zapytaj wszystkie opakowania pinów i wyciągnij tytuł, URL i miniaturę z każdego:

import asyncio, json
from playwright.async_api import async_playwright

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

PROXY = {"server": "http://gate.quantumproxies.io:8000",
         "username": "USER", "password": "PASS"}

async def scrape_pins(query):
    url = f"https://www.pinterest.com/search/pins/?q={query}&rs=typed"
    results = []
    async with async_playwright() as p:
        browser = await p.chromium.launch(proxy=PROXY)
        page = await browser.new_page(user_agent=UA)   # real UA is mandatory
        await page.goto(url, timeout=30000)
        await page.wait_for_timeout(2500)              # let pins render
        pins = await page.query_selector_all("div[data-test-id='pinWrapper']")
        for pin in pins:
            link = await pin.query_selector("a")
            if not link:
                continue
            img = await link.query_selector("img")
            results.append({
                "title": await link.get_attribute("aria-label"),
                "url": await link.get_attribute("href"),
                "img": await img.get_attribute("src") if img else None,
            })
        await browser.close()
    return results

pins = asyncio.run(scrape_pins("minimalist home office"))
print(len(pins), "pins")

To daje podstawy do pracy z trendami: tytuł pina (który jest bogatym, opisowym tekstem napisanym przez użytkowników), docelowy URL i miniaturę. Przewijaj stronę w pętli przed wyborem, jeśli chcesz więcej niż pierwszy widok — Pinterest ładuje leniwie w miarę przewijania.

Diagram porównawczy pokazujący strony z ukrytym JSON w porównaniu do Pinterest, który wymaga renderowania przed odczytaniem DOM
Pinterest wstrzykuje zawartość za pomocą JavaScript, więc najpierw renderujesz, a potem czytasz DOM — brak JSON na stronie, aby to obejść.

Od pinów do sygnałów trendów

Surowe piny to tylko pierwszy krok. Wartość badawcza pochodzi z agregowania ich w sygnały, na które może reagować twój zespół merchandisingowy lub treściowy:

Ponieważ te sygnały są najsilniejsze, gdy porównujesz rynki, geo-celuj wyjściowy IP: to, co pojawia się dla kupującego z USA, różni się od tego dla kupującego z UK czy Niemiec, a ta różnica często jest szansą. Przeprowadź każde uruchomienie przez proxy rezydencyjne specyficzne dla kraju i przechowuj rynek wraz z danymi.

Jedna praktyczna wskazówka dotycząca pracy z trendami: przechwytuj te same wyszukiwania w stałym tygodniowym rytmie i przechowuj każdy zrzut zamiast nadpisywać. Liczba pinów dla "cottagecore kitchen" nic nie znaczy w izolacji, ale rosnąca linia przez osiem tygodni to prawdziwy wskaźnik wyprzedzający — zapisy na Pinterest poprzedzają zakupy, więc temat zyskujący teraz na platformie jest sygnałem merchandisingowym na następny kwartał. Porównywanie jest trywialne, gdy masz spójne zrzuty; dyscyplina polega na ich niezawodnym zbieraniu, co jest dokładnie tym, gdzie czyste IP i stabilny selektor się opłacają.

Utrzymanie trybu bezgłowego

Pinterest monitoruje automatyzację, więc przeglądarka na IP centrum danych z robotycznym odciskiem palca jest szybko oznaczana. Trzy nawyki utrzymują sesje zdrowe: spójny prawdziwy User-Agent (już omówiony), świeży rotacyjny IP rezydencyjny na sesję, aby jeden adres nie był powiązany z dziesiątkami wyszukiwań, i ludzkie tempo — krótka przerwa po załadowaniu, delikatne przewijanie, brak tysięcy żądań na raz. Nasz przewodnik dotyczący zeskrobywania stron ciężkich w JavaScript szczegółowo omawia kombinację renderowania i proxy, a te same zasady higieny antyblokadowej mają zastosowanie do innych platform społecznościowych — zobacz zeskrobywanie danych publicznych z Instagram dla porównania.

Zdobądź IP rezydencyjne stworzone do zeskrobywania społecznościowego

Kiedy flota przeglądarek przestaje być opłacalna

Renderowanie każdej strony jest wolne i kosztowne — przeglądarka bezgłowa kosztuje rząd wielkości więcej na stronę niż zwykłe żądanie zarówno pod względem czasu, jak i przepustowości. Na skalę badawczą to się sumuje. Scraper API, który renderuje na żądanie i zwraca uporządkowane dane, pozwala ci pominąć flotę przeglądarek, rotację proxy i obsługę blokad, dzięki czemu możesz skupić się na analizie zamiast na utrzymaniu. Dodatkowo wyciąga bogatsze pola — liczby obserwujących, liczby zapisów i komentarzy, kategorie i hashtagi — które szybkie zeskrobywanie DOM pozostawia na stole.

Lista kontrolna zasad do i nie dla zeskrobywania Pinterest, w tym prawdziwy User-Agent i rotacja IP rezydencyjnych
Prawdziwy User-Agent i rotacyjne IP rezydencyjne są nie do negocjacji — domyślny UA bezgłowy to natychmiastowa blokada.

Często zadawane pytania

Jak zeskrobać Pinterest za pomocą Pythona?

Użyj przeglądarki bezgłowej, takiej jak Playwright, zamiast zwykłych żądań, ponieważ Pinterest renderuje zawartość za pomocą JavaScript i nie pozostawia danych w surowym HTML. Ustaw prawdziwy User-Agent dla desktopu, załaduj URL wyszukiwania lub tablicy, poczekaj na renderowanie pinów, a następnie wybierz każdy div[data-test-id="pinWrapper"] i odczytaj tytuł, URL i obraz z każdego.

Czy Pinterest ma publiczne API?

Pinterest oferuje oficjalne API dla kont biznesowych i deweloperskich, ale jest ograniczone, z limitem szybkości i skoncentrowane na zarządzaniu własnymi treściami i reklamami, a nie na szerokich badaniach trendów w całej sieci. Dla danych publicznych o pinach, tablicach i trendach wyszukiwania w różnych niszach i rynkach, większość badaczy renderuje publiczne strony zamiast tego.

Dlaczego Pinterest blokuje mój scraper?

Dwie najczęstsze przyczyny to domyślny User-Agent bezgłowy, który Pinterest blokuje na widok, oraz IP centrum danych powiązane z wieloma szybkimi żądaniami. Napraw oba: wyślij normalny UA Chrome, rotuj IP rezydencyjne na sesję i tempo żądań z przerwami i przewijaniem zamiast wysyłania serii.

Czy zeskrobywanie Pinterest jest legalne?

Zbieranie publicznie widocznych danych znajduje się w szarej strefie prawnej i zależy od jurysdykcji, celu i warunków korzystania z Pinterest. Trzymaj się publicznych pinów i tablic, unikaj danych osobowych i wszystkiego za logowaniem, i skonsultuj się z prawnikiem w przypadku komercyjnego wykorzystania. To ogólna informacja, a nie porada prawna.

Pinterest nagradza cierpliwość: renderuj stronę, celuj w stabilne opakowanie pinów, agreguj opisowe tytuły i sugestie wyszukiwania w sygnały trendów, i utrzymuj czysty odcisk palca i IP. Rób to na rynku i uzyskasz wskaźnik wyprzedzający popytu, którego większość konkurentów nie obserwuje.

Renderuj Pinterest na skalę za pomocą Scraper API