Tony Wang4 分で読めますTrustpilot のレビューをスクレイピングする方法 2026年版(API と Python)
2026年に Trustpilot のレビューと評価をスクレイピングする3つの方法 — Python での自作、ノーコードツール、または構造化 API — それぞれ何が得られるかと法律の基本。
2026 年に Trustpilot のレビューをスクレイピングする最速の方法は、Trustpilot の HTML を自分でページ送りして解析する代わりに、正規化された JSON(評価、レビュー本文、日付、投稿者ラベル、企業プロフィールデータ)を返す構造化レビュー API を呼び出すことです。Python での自作も可能ですが、ページネーション、レイアウト変更、アンチボット対策により維持コストが高くつきます。またレビュー本文は個人データであり、慎重に扱う必要があります。
Trustpilot は公式の Business API を提供していますが、有料プランとパートナーアクセスが必要です。自社所有でない企業の公開レビューデータを取得したい場合は、構造化スクレイピング API が実用的な選択肢です。
Trustpilot のレビューをスクレイピングするのは合法ですか?
レビューは公開されていますが、個人データ(レビュー投稿者の氏名や意見)を含むため、特に慎重に扱いましょう。
- 公開されているレビューページのみを収集する(ログインは行わない)。
- 投稿者情報は GDPR / CCPA 上の個人データとして扱う。保存する情報を最小限にし、正当な根拠を持つ。
- レート制限と Trustpilot の利用規約を尊重する。適法な利用の責任は利用者にあります。
- スクレイピングしたレビューを、出典や真正性について誤解を招く形で提示しない。
これは法的助言ではありません。公開データと個人データの線引きをより詳しく扱った Web スクレイピングは 2026 年に合法ですか? を参照してください。
選択肢 1: Python での自作(そしてなぜ破綻するのか)
まずは企業ページを取得してレビューカードを解析します。
import json, requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.trustpilot.com/review/openai.com",
headers={"User-Agent": "Mozilla/5.0", "Accept-Language": "en-US,en;q=0.9"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Trustpilot pre-loads reviews into a __NEXT_DATA__ script tag — faster than parsing cards
data = json.loads(soup.select_one("#__NEXT_DATA__").string)
reviews = data["props"]["pageProps"].get("reviews", []) # undocumented path; shifts between deploys
print(len(reviews), "reviews on page 1")
# ...then normalize each review to CSV, page every ?page= URL, and get past Cloudflare
繰り返し発生するコスト:
- Cloudflare とレート制限 — Trustpilot はボット検出とレート制限を備えた Cloudflare の背後にあるため、リクエストを繰り返すには住宅用プロキシと JS レンダリングのフォールバックが必要です。
- 仕様が非公開 —
__NEXT_DATA__のブロブの構造はデプロイのたびに変わるため、そこへのアクセスパスが気づかないうちに壊れます。 - ページネーション — レビューは多数の
?page=URL にまたがるため、巡回して重複排除する必要があります。 - 正規化 — 星評価、日付、認証フラグ、返信のすべてに一貫した解析が必要です。
選択肢 2: ノーコードや既製ツール
ポイント&クリック型のスクレイパーはページを 1〜2 ページ取得できますが、評判モニタリングでは企業を定期的に再チェックし、履歴を保存する必要があります。これはパイプライン作業であり、手動ツールよりも API が適しています。
選択肢 3: 構造化された Trustpilot API
Crawlora の Trustpilot API は、企業プロフィール、レビュー、検索、カテゴリ向けにドキュメント化されたエンドポイントを公開し、正規化された JSON を返します。レビューは企業スラッグ(Trustpilot 上でのドメイン)で指定します。
curl -G "https://api.crawlora.net/api/v1/trustpilot/business/openai.com/reviews" \
-H "x-api-key: $CRAWLORA_API_KEY" \
--data-urlencode "page=1" \
--data-urlencode "language=en"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/trustpilot/business/openai.com/reviews",
headers={"x-api-key": "YOUR_API_KEY"},
params={"page": 1, "language": "en"},
)
for review in resp.json()["data"]["reviews"]:
print(review["stars"], review["title"], review["date"])
レスポンスはそのまま保存できる正規化された JSON です(フィールドは例示です。スキーマはドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"business": { "slug": "openai.com", "rating": 4.1, "review_count": 1234 },
"reviews": [
{
"stars": 5,
"title": "Great experience",
"text": "Review body text.",
"date": "2026-05-01",
"verified": true
}
]
}
}
レビューは stars、verified、language、検索語 q、そして期間で絞り込めます。スラッグがわからない場合は、まず検索して、プロフィール、関連する競合他社、あるいはカテゴリ全体を取得できます。
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/trustpilot"
found = requests.get(f"{base}/business-units/search", headers=h, params={"q": "openai"}).json()["data"]
profile = requests.get(f"{base}/business/openai.com", headers=h).json()["data"]
related = requests.get(f"{base}/business/openai.com/related", headers=h).json()["data"]
sector = requests.get(f"{base}/category/software_company", headers=h, params={"page": 1}).json()["data"]
スラッグは企業の Trustpilot 上でのドメイン(例: openai.com)です。カテゴリエンドポイント(/categories、/category/{slug})は、競合ベンチマーク向けにあるセクター内の企業を発見できます。
収集できるもの
- 企業プロフィール: 総合評価、レビュー件数、カテゴリ
- 個別のレビュー: 星評価、タイトル、本文、日付、認証状況、(存在する場合は)返信
- 星評価・認証状況・言語・キーワード・期間による絞り込み
- 企業を発見するためのカテゴリおよび検索エンドポイント
制約とよくある課題
- 公式 API は自社プロフィール限定です。 Trustpilot の Service Reviews API と Business Units API は認証済みの Business アカウントを必要とし、自社の Business Unit のデータのみを返します。競合をベンチマークするには公開レビューを収集します。
- Cloudflare とレート制限。 公開ページはボット検出とレート制限を備えた Cloudflare の背後にあるため、自作では住宅用プロキシと JS レンダリングが必要ですが、構造化 API は 1 つのキーの背後でこれを処理します。
- レビューは個人データです。 レビュー投稿者の氏名や意見は GDPR / CCPA の対象です。保存する情報を最小限にし、正当な根拠を持ち、レビューの出典や真正性について誤解を招かないようにしましょう。
- ページネーション。 レビューやカテゴリの一覧はページ分割されます。すべてのページを巡回して重複排除しましょう。
出典
この機能が活きる場面
まずは無料で試す: 任意の公開 URL を 無料 Web スクレイパー で実行するか、アンチボットチェッカー でサイトがボットをブロックしているか確認できます。サインアップ不要です。
これはレビュー・評判モニタリングを支えます。ブランドの評価を時系列で追跡し、新しいネガティブレビューを検知し、競合と比較できます。App Store と Google Play のレビューエンドポイントによるアプリ側のセンチメント、あるいは事前スクレイピング済みのアプリレビューセンチメントデータセットと組み合わせれば、顧客フィードバックをチャネル横断で把握できます。他の公開ソースからのセンチメントについては Reddit をスクレイピングする方法 を、より幅広いツールキットについては Web スクレイピング API の選び方 を参照してください。
まずは Playground でエンドポイントをテストし、API ドキュメントでリクエストとレスポンスのスキーマを読み、料金ページでクレジットのコストを確認して始めましょう。
よくある質問
ブロックされずに Trustpilot をスクレイピングできますか?
Crawlora は API の背後でプロキシのルーティング、リクエストのペース調整、リトライを管理し、利用できないページには文書化されたエラーを返します。そのため 1 つのエンドポイントを呼び出すだけで正規化されたレビュー JSON が得られます。(Trustpilot はボット検出とレート制限を備えた Cloudflare の背後にあるため、自作では住宅用プロキシと JS レンダリングが必要です。)
Trustpilot に公式 API はありますか?
はい。ただし自社プロフィール限定です。Trustpilot の Service Reviews API と Business Units API は認証済みの Business アカウントを必要とし、自社の Business Unit のデータのみを返します。競合をベンチマークするために、Crawlora は複数企業の公開レビューデータを正規化された JSON として収集します。
レビューデータは個人データですか?
レビューにはレビュー投稿者の氏名や意見が含まれ、これらは GDPR や CCPA の下で個人データになり得ます。保存する情報を最小限にし、正当な根拠を持ち、責任を持って扱い、レビューの出典や真正性について誤解を招かないようにしましょう。
競合他社のレビューやセクター全体をスクレイピングできますか?
はい。business-units 検索でスラッグを見つけ、related-businesses エンドポイントで競合他社を、カテゴリエンドポイントであるセクター内の全企業を発見して取得し、ベンチマークに使えます。
レビューは何で絞り込めますか?
星評価、認証状況、言語、キーワード(q)、期間に加えてページネーションで絞り込めるため、必要なレビューだけを取得できます。
企業のスラッグはどうやって見つけますか?
business-units 検索エンドポイントを使います。スラッグは企業の Trustpilot 上でのドメイン(例: openai.com)で、レビューのパスに使われます。