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())
仕組み
- Pinterestを開き、キーワードを検索します。
- ページの読み込みを待ちます。
- ページ上のすべてのピンを見つけます。
- 各ピンのタイトル、URL、および画像を抽出します。
- データを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)
仕組み
- Bright Data にリクエストを送信してスクレイピングを開始します。
- データが処理されるのを待ちます。
- 結果をダウンロードして保存します。
Bright Data の API は信頼性が高く、迅速で、Pinterest のブロックを回避します。 他のトップスクレイピングAPIをチェックしてください。
どの方法を使用すべきですか?
結論
Pinterest のスクレイピングは、適切なツールがあれば完全に実行可能です。完全なコントロールを持ち、いくつかの障害を処理することを気にしないのであれば、Playwright は素晴らしい選択です。実際のユーザーのように Pinterest と対話できますが、ブロックに遭遇する可能性があります。
データジャーナルのストーリーをあなたの受信箱に
この作家からの更新を受け取るために、Medium に無料で参加してください。
もっと簡単で信頼性の高いものを求めるなら、Bright Data の API が最適です。CAPTCHA やブロックされたリクエストを処理する必要はありません。
どちらの方法も、研究、マーケティング、またはコンテンツ作成のために Pinterest データを収集するのに役立ちます。最終的には、あなたに最適な方法にかかっています。ニーズに合ったアプローチを選び、スクレイピングを開始しましょう!

