Как собирать данные из Pinterest

Как собирать данные из Pinterest в 2026 году

В этой статье я покажу два простых способа извлечь данные из Pinterest. Первый метод использует Playwright, headless-браузер, который позволяет взаимодействовать со страницами как обычный пользователь. Второй метод основан на Scraper API, который берет на себя все, включая CAPTCHAs и динамической загрузки. Нужен ли вам полный контроль или быстрое автоматизированное решение, вы найдете рабочий подход. Начнем!

Какие данные можно извлечь из Pinterest?

При скрапинге Pinterest можно собирать:

  • Названия пинов — Текст, описывающий каждый пин.
  • URL-адреса булавок — Ссылки на отдельные пины.
  • Изображения булавок — Изображения, связанные с каждым пином.
  • Информация о пользователе — Сведения о профиле автора пина.
  • Post Engagement — Лайки, комментарии и репосты.

Парсинг Pinterest с помощью Playwright

Playwright — мощный инструмент для скрейпинга динамических сайтов. Он позволяет взаимодействовать со страницами с большим количеством JavaScript, такими как Pinterest.

Шаг 1: Установите Playwright

Сначала установите Playwright и его браузеры:

pip install playwright
установить playwright

Шаг 2: Напишите скрейпер

Следующий Python-скрипт ищет пины на Pinterest и извлекает их данные:

импорт asyncio
с сайта playwright.async_api импорт async_playwright
импорт json
async def scrape_pinterest(запрос):
url = f "https://www.pinterest.com/search/pins/?q={запрос}&rs=typed"
результаты = []
async с async_playwright() в роли p:
браузер = ожидайте p.chromium.launch(headless=Правда)
страница = ожидайте browser.new_page()
ожидайте page.goto(url)
ожидайте asyncio.sleep(2)
штырьки = ожидайте page.query_selector_all("div[data-test-id='pinWrapper']")
для вывод в булавки:
title_element = ожидайте pin.query_selector("a")
название = ожидайте title_element.get_attribute("aria-label") если элемент_заголовка else "Без названия"
pin_url = ожидайте title_element.get_attribute("href") если элемент_заголовка else "Нет URL"
элемент_изображения = ожидайте pin.query_selector("img")
image_url = ожидайте image_element.get_attribute("src") если элемент_изображения else "Нет изображения"
results.append({"title": title, "url": pin_url, "изображение": image_url})
ожидайте browser.close()
возврат результаты
async def главная():
запрос = "home decor"
данные = ожидайте scrape_pinterest(query)
с открыть(f"{запрос}_pins.json", "w") в роли файл:
json.dump(data, file, indent=4)
если __name__ == "__main__":
asyncio.run(main())

Как это работает

  1. Открывает Pinterest и ищет по ключевому слову.
  2. Дожидается загрузки страницы.
  3. Находит все пины на странице.
  4. Извлекает заголовок, URL и изображение для каждого пина.
  5. Сохраняет данные в JSON-файл.

Этот метод полезен, но может быть заблокирован, если Pinterest обнаружит автоматический скрейпинг.

Скрапинг Pinterest с помощью Scraper API от Bright Data

Bright Data предоставляет API для веб-скрейпинга, которое упрощает сбор данных с Pinterest без необходимости беспокоиться об автоматизации браузера или блокировках.

Шаг 1: Установите Requests

pip install requests

Шаг 2: Используйте API от Bright Data

импорт requests
импорт json
импорт время
API_KEY = "YOUR_API_KEY"
КЛЮЧЕВОЙ СЛОВО = "home decor"
def start_scrape(api_key, ключевое слово):
url = "https://api.brightdata.com/datasets/v3/trigger"
заголовки = {"Авторизация": f "Носитель {api_key}", "Content-Type": "application/json"}
данные = [{ {"ключевое слово": ключевое слово}]
response = requests.post(url, headers=headers, json=data)
возврат response.json().get("snapshot_id")
def получить_результаты(api_key, snapshot_id):
url = f "https://api.brightdata.com/datasets/v3/snapshot/{snapshot_id}?format=json"
заголовки = {"Авторизация": f "Носитель {api_key}"}
в то время как Правда:
response = requests.get(url, headers=headers)
если response.status_code == 200:
с открыть("pinterest_data.json", "w") в роли файл:
json.dump(response.json(), file, indent=4)
печать("Данные сохранены!")
перерыв
elif response.status_code == 202:
печать("Ожидание данных…")
time.sleep(10)
else:
печать("Ошибка:", response.text)
перерыв
если __name__ == "__main__":
snapshot_id = start_scrape(API_KEY, KEYWORD)
get_results(API_KEY, snapshot_id)

Как это работает

  1. Отправляет запрос в Bright Data, чтобы начать сбор данных.
  2. Ожидает обработки данных.
  3. Скачивает и сохраняет результаты.

API Bright Data надежно, быстро и помогает обходить блокировки Pinterest. Ознакомьтесь с все остальные ведущие API для скрейпинга.

Какой метод следует использовать?

Заключение

Скрапинг Pinterest вполне возможен, если у вас есть правильные инструменты. Если вам нужен полный контроль и вас не пугают несколько препятствий, Playwright — отличный выбор. Он позволяет взаимодействовать с Pinterest так же, как это делает реальный пользователь, но вы можете столкнуться с блокировками.

Если вам нужен более простой и надёжный вариант, API от Bright Data — лучший выбор. Он берёт всё на себя — не нужно возиться с капчами или заблокированными запросами.

Оба метода помогут вам собирать данные Pinterest для исследований, маркетинга или создания контента. В конечном счете все сводится к тому, что лучше работает именно для вас. Выберите подход, который соответствует вашим задачам, и начинайте скрейпинг!

Похожие записи