0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「2025年にPinterestをスクレイピングする方法」

Last updated at Posted at 2025-11-10

Medium image

Pinterestのスクレイピング方法

2025年のPinterestスクレイピング方法

この記事では、Pinterestデータを抽出するための2つの簡単な方法を紹介します。最初の方法は、実際のユーザーのようにウェブページと対話できるヘッドレスブラウザであるPlaywrightを使用します。2つ目の方法は、CAPTCHAや動的読み込みを含むすべてを処理するScraper APIに依存しています。完全な制御を望む場合でも、迅速で自動化されたソリューションを求める場合でも、あなたに合ったアプローチが見つかるでしょう。それでは始めましょう!

Pinterestから抽出できるデータは?

Pinterestをスクレイピングする際に収集できるデータは以下の通りです:

  • ピンタイトル — 各ピンを説明するテキスト。
  • ピンURL — 各ピンへのリンク。
  • ピン画像 — 各ピンに関連する画像。
  • ユーザー情報 — ピン作成者のプロフィール詳細。
  • 投稿エンゲージメント — いいね、コメント、シェア。

Playwrightを使用したPinterestのスクレイピング

Playwrightは、動的なウェブサイトをスクレイピングするための強力なツールです。PinterestのようなJavaScriptが多用されたページと対話することができます。

ステップ1: Playwrightのインストール

まず、Playwrightとそのブラウザをインストールします:

pip install playwright
playwright install

ステップ2: スクレイパーを作成する

以下のPythonスクリプトは、Pinterestでピンを検索し、その詳細を抽出します:

import asyncio
from playwright.async_api import async_playwright
import json

async def scrape_pinterest(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(headless=True)
        page = await browser.new_page()
        await page.goto(url)
        await asyncio.sleep(2)
        pins = await page.query_selector_all("div[data-test-id='pinWrapper']")
        for pin in pins:
            title_element = await pin.query_selector("a")
            title = await title_element.get_attribute("aria-label") if title_element else "No title"
            pin_url = await title_element.get_attribute("href") if title_element else "No URL"
            image_element = await pin.query_selector("img")
            image_url = await image_element.get_attribute("src") if image_element else "No image"
            results.append({"title": title, "url": pin_url, "image": image_url})
        await browser.close()
    return results

async def main():
    query = "home decor"
    data = await scrape_pinterest(query)
    with open(f"{query}_pins.json", "w") as file:
        json.dump(data, file, indent=4)

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

仕組み

  1. Pinterestを開き、キーワードを検索します。
  2. ページの読み込みを待ちます。
  3. ページ上のすべてのピンを見つけます。
  4. 各ピンのタイトル、URL、および画像を抽出します。
  5. データをJSONファイルに保存します。

この方法は便利ですが、Pinterestが自動スクレイピングを検出するとブロックされる可能性があります。

Bright DataのScraper APIを使用したPinterestのスクレイピング

Bright Dataは、ブラウザの自動化やブロックの心配をせずにPinterestデータを収集できるウェブスクレイパーAPIを提供しています。

ステップ1: Requestsのインストール

pip install requests

ステップ2: Bright DataのAPIを使用する

import requests
import json
import time

API_KEY = "YOUR_API_KEY"
KEYWORD = "home decor"
def start_scrape(api_key, keyword):
    url = "https://api.brightdata.com/datasets/v3/trigger"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    data = [{"keyword": keyword}]
    response = requests.post(url, headers=headers, json=data)
    return response.json().get("snapshot_id")

def get_results(api_key, snapshot_id):
    url = f"https://api.brightdata.com/datasets/v3/snapshot/{snapshot_id}?format=json"
    headers = {"Authorization": f"Bearer {api_key}"}
    
    while True:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            with open("pinterest_data.json", "w") as file:
                json.dump(response.json(), file, indent=4)
            print("Data saved!")
            break
        elif response.status_code == 202:
            print("Waiting for data…")
            time.sleep(10)
        else:
            print("Error:", response.text)
            break

if __name__ == "__main__":
    snapshot_id = start_scrape(API_KEY, KEYWORD)
    get_results(API_KEY, snapshot_id)

仕組み

  1. Bright Data にリクエストを送信してスクレイピングを開始します。
  2. データが処理されるのを待ちます。
  3. 結果をダウンロードして保存します。

Bright Data の API は信頼性が高く、迅速で、Pinterest のブロックを回避します。 他のトップスクレイピングAPIをチェックしてください

どの方法を使用すべきですか?

Medium image

結論

Pinterest のスクレイピングは、適切なツールがあれば完全に実行可能です。完全なコントロールを持ち、いくつかの障害を処理することを気にしないのであれば、Playwright は素晴らしい選択です。実際のユーザーのように Pinterest と対話できますが、ブロックに遭遇する可能性があります。

データジャーナルのストーリーをあなたの受信箱に

この作家からの更新を受け取るために、Medium に無料で参加してください。

もっと簡単で信頼性の高いものを求めるなら、Bright Data の API が最適です。CAPTCHA やブロックされたリクエストを処理する必要はありません。

どちらの方法も、研究、マーケティング、またはコンテンツ作成のために Pinterest データを収集するのに役立ちます。最終的には、あなたに最適な方法にかかっています。ニーズに合ったアプローチを選び、スクレイピングを開始しましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?