Tony Wang6 分で読めますFacebook Marketplaceをスクレイピングする方法【2026年版】(APIとPython)
Facebook Marketplaceには公開APIがなく、Metaの規約は自動アクセスの前に許可を求めています — それでも試せる自作、ノーコード、APIという3つの方法を解説します。
Facebook Marketplaceは、このシリーズの中でも自動アクセスに対して特に厳しいプラットフォームの1つです。MetaはMarketplaceのリスティングデータ向けに公開APIを一度も提供したことがなく、Pages・Groups・Adsをカバーするグラフ APIも、Marketplaceだけはあからさまに対象外としています。さらにMeta自身の自動データ収集規約は、いかなる自動収集の前にも明示的な書面での許可を要求しており、ほとんどのプラットフォームにある一般的な「スクレイピングはご遠慮ください」という条項よりも、明確に許可を求めるゲートです。それでもこのガイドでは、自作Python・ノーコード・構造化APIという3つの経路それぞれで実際に何が取得できるか、そしてどのような法律面のリスクの下で行うことになるのかを解説します。
Facebook Marketplaceのデータをスクレイピングする理由
- 地域のクラシファイド広告の価格リサーチ — 特定の都市で中古品・車両・家具・家電がどのように値付けされているかを把握する。
- 転売・アービトラージのリサーチ — 転売する価値のある、あるカテゴリの割安なリスティングを見つける。
- リセラー・競合のモニタリング — 特定の地域における検索語やカテゴリの推移を継続的に追跡する。
- 地域市場のサイジング — あるカテゴリと都市における中古品の需要と供給を測る。
- AIパイプラインやエージェント — レンダリングされたHTMLを解析する代わりに、構造化されたローカルマーケットプレイスのデータを必要とするもの。
Facebook Marketplaceをスクレイピングするのは合法ですか?
選択肢1: Pythonで自作する(そしてなぜ壊れるのか)
素朴なアプローチでは、Marketplaceの検索ページを取得してリスティングカードを解析します。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.facebook.com/marketplace/austin/search/?query=bike",
headers={"User-Agent": "Mozilla/5.0"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Listings render from an embedded relay/GraphQL JSON blob, not
# static markup — and an anonymous, datacenter-IP request is
# frequently redirected to a login wall before any data loads
一度は動きますが、そこから問題が始まります。
- ログイン壁。 Marketplaceは匿名やデータセンターIPからのリクエストをログイン画面へリダイレクトすることが多く、同じリスティングは通常のログアウト状態のブラウザセッションからは普通に公開閲覧できるにもかかわらずです。
- アンチボット対策が異例に強力。 レート制限、デバイス・ブラウザのフィンガープリンティング、チェックポイント認証がスクリプトによるリクエストを素早く遮断します — このシリーズで扱う中でも、Metaの防御はトップクラスに厳しい部類です。
- 安定したマークアップがない。 リスティングデータは、アプリのデプロイのたびに形が変わる、埋め込みのrelay/GraphQL状態blobの中に入っており、選択可能なHTMLではありません。
- 自動データ収集規約は手法にかかわらず適用される。 技術的にはうまく動くスクレイパーであっても、あいまいな「ご遠慮ください」ではなく、Metaの明示的許可という要件に反して動作していることに変わりありません。
選択肢2: ノーコードと既製ツール
ブラウザ拡張機能や単発のMarketplace用スクレイパーは手動エクスポート向けに存在しますが、DIYと同じログイン壁の摩擦と法的リスクを引き継いでいます — さらにMetaは過去に、まさにこのデータ収集パターンを理由に、少なくとも1つのブラウザ拡張機能ベンダー(BrandTotal)を提訴しています。手動エクスポートは継続的なモニタリングも解決しません。転売や価格追跡の作業では、同じ検索をスケジュールに沿って再実行し続ける必要があり、それは単発ツールの問題ではなくパイプラインの問題です。
選択肢3: 構造化されたFacebook Marketplace API
CrawloraのFacebook APIは、リクエスト処理・ヘッダー・正規化を、ドキュメント化されたMarketplace検索エンドポイントの背後にまとめています。
curl "https://api.crawlora.net/api/v1/facebook/marketplace/search?location=austin&query=bike" \
-H "x-api-key: $CRAWLORA_API_KEY"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/facebook/marketplace/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"location": "austin", "query": "bike"},
)
for item in resp.json()["data"]["listings"]:
print(item["title"], item["price"]["formatted"], item["url"])
レスポンスは正規化されたJSONです(実際の例です — リクエストパラメータとスキーマはドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"location": "austin",
"query": "bike",
"category": "vehicles",
"listings": [
{
"id": "1548909030206114",
"title": "Electric bike",
"price": { "formatted": "$350", "amount": "350.00", "isFree": false },
"city": "Austin",
"state": "TX",
"image": "https://scontent.fsgn12-1.fna.fbcdn.net/v/t39.84726-6/...",
"url": "https://www.facebook.com/marketplace/item/1548909030206114/"
}
],
"hasMore": true,
"sourceUrl": "https://www.facebook.com/marketplace/austin/search/?query=bike"
}
}
locationは必須です(austinのような都市のバニティスラッグ)。query、category、min_price、max_price、sort_by、days_since_listed、conditionは任意のフィルターで、検索を絞り込みたいものを好きに指定できます。
Facebookが公開している情報はMarketplaceにとどまりません。関連する別のエンドポイント/facebook/{page}では、公開されているFacebook Pageの名前・フォロワー数・カテゴリ・営業時間・About タブに公開されている連絡先情報を取得できます — 追跡しているMarketplaceのカテゴリで、セラーが自分のFacebook Pageも運営している場合に便利です。
page = requests.get(
"https://api.crawlora.net/api/v1/facebook/woodlandwindows1",
headers={"x-api-key": "YOUR_API_KEY"},
).json()["data"]
print(page["title"], page["stats"]["likes"], page.get("email"))
収集できるもの
- Marketplaceの検索結果 — リスティングID、タイトル、フォーマット済み価格と生の価格、無料出品フラグ、市区町村/州、サムネイル画像、リスティングURL。これらは地域に加え、任意のクエリ・カテゴリ・価格帯・並び順・出品からの経過日数・コンディションでフィルタリングできます。
- セラー情報はなし。 Crawloraの Marketplace 検索エンドポイントが返すのはリスティングの詳細のみで、セラー名やプロフィールのフィールドはありません。
- 公開されているFacebook Pageのデータ(別エンドポイント) — 名前、フォロワー/いいね数、紹介文、カテゴリ、営業時間や価格帯、レビュー数、そしてビジネスPageが公開しているメール・電話番号・住所などの連絡先情報。
制約
- 狭い、2エンドポイントのみの構成。 検索のみで、単一リスティング向けの専用の商品詳細エンドポイントはなく、検索結果のサムネイル以上の画像ギャラリーもなく、セラー情報もありません。
- 比較対象となる公式の基準がない。 eBayやEtsyと違い、Marketplace向けの公開APIはそもそも存在しないため、「公式 vs. スクレイピング」という利便性のギャップも存在しません — このエンドポイントが、このデータへの唯一の構造化された経路です。
- より厳しい法執行環境。 Metaの明示的な許可要件と訴訟の実績により、Marketplaceはこのシリーズの他の多くのプラットフォームより高リスクなカテゴリになっています。ボリュームと頻度は妥当な範囲に抑え、公開されている、ログアウト状態のデータのみを扱ってください。
- 地域スコープの検索。 結果は地域のバニティスラッグ(例:
austin)にひもづいており、グローバル検索や半径指定の検索ではありません。 - 価格と在庫は素早く動く。 Marketplaceのリスティングはすぐに売れたり取り下げられたりします — 取得結果はスナップショットとして扱い、1回の結果セットを信頼せずスケジュールに沿って再実行してください。
この機能が活きる場面
- 転売・アービトラージのリサーチ — あるカテゴリと都市の中から割安なリスティングを探す。
- 地域の中古品市場のサイジング — 地域ごとの商品カテゴリの需要と供給を測る。
- リセラー・競合のモニタリング — 検索語のリスティングと価格が時間とともにどう変化するかを追跡する。
- 企業エンリッチメント — セラーが自分のFacebook Pageも運営している場合、Marketplaceのカテゴリ追跡とPage検索エンドポイントを組み合わせる。
出典
始めてみる
まずは無料で試す: 任意の公開URLを無料Webスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認しましょう — サインアップ不要です。
Marketplace検索エンドポイントはPlaygroundで試し、リクエストとレスポンスのスキーマはAPIドキュメントで確認し、クレジットの消費量は料金ページでチェックしてください。Facebook Marketplaceは、このシリーズの他のP2P・リセールマーケットプレイスと並ぶ存在です — オークションと固定価格のリセールについてはeBayをスクレイピングする方法を、ハンドメイドやヴィンテージ側についてはEtsyをスクレイピングする方法をご覧ください。プラットフォームをまたぐ法律面の全体像についてはWebスクレイピングは合法かもあわせてどうぞ。
よくある質問
FacebookにはMarketplace向けの公式APIはありますか?
ありません。MetaはこれまでMarketplaceのリスティングデータ向けに公開APIを提供したことがありません — グラフAPIはPages・Groups・Adsをカバーしていますが、Marketplaceだけはあからさまに対象外です。最も近い公式の窓口は、自社在庫を管理する承認済みセラー向けの、アルファ版の限定的なCommerce Partner APIであり、サードパーティによる市場リサーチやリスティング検索向けではありません。
Facebook Marketplaceをスクレイピングするのは合法ですか?
これは法的助言ではありません。Marketplaceのリスティングはログインしなくても公開閲覧でき、hiQ Labs v. LinkedInでは公開データのスクレイピングが自動的にCFAA違反になるわけではないとされました。ただし、Metaの自動データ収集規約はいかなる自動収集の前にも「明示的な書面での許可」を要求しており、Metaはスクレイピングを積極的に提訴してもいます — ログアウト状態での公開スクレイピングをめぐるBright Dataとの契約違反訴訟では敗訴した一方、ログイン済みセッションを使ったブラウザ拡張機能をめぐるBrandTotalとの訴訟では勝訴しています。収集するのは公開されている、ログアウト状態のデータのみにとどめ、レート制限を守ってください。
Metaの法執行姿勢は、このシリーズの他のプラットフォームとどう違いますか?
このシリーズの他の多くのプラットフォームは、一般的な利用規約の条項でスクレイピングを控えるよう求める程度です。Metaの自動データ収集規約はより明確で、いかなる自動収集の前にもMetaの明示的な書面での許可を要求しており、Facebookのrobots.txtも直接その規約を指し示しています。Metaはスクレイパーやブラウザ拡張機能ベンダーを提訴してもきており、このガイドシリーズで扱う他のほとんどのプラットフォームより法執行のリスクが高くなっています。
CrawloraでFacebook Marketplaceをスクレイピングするにはどうすればいいですか?
location(必須)に加え、任意のquery・category・価格帯・並び順・出品からの経過日数・コンディションのフィルターを、CrawloraのFacebook Marketplace検索エンドポイントに送信すると、正規化されたJSON — リスティングID、タイトル、価格、市区町村/州、サムネイル、リスティングURL — が返ってきます。レンダリングされたHTMLを解析したり、ログイン壁を処理したりする必要はありません。
Marketplace検索エンドポイントはセラー情報も返しますか?
いいえ。CrawloraのFacebook Marketplace検索エンドポイントが返すのはリスティングの詳細(タイトル、価格、所在地、サムネイル、URL)のみで、セラー名やプロフィールのフィールドはありません。
Facebook Pageの連絡先情報も調べられますか?
はい、別のエンドポイントで可能です。/facebook/{page}は、ID・バニティ名・URLで公開されているFacebook Pageを検索し、その名前、フォロワー/いいね数、カテゴリ、営業時間、そして公開している連絡先情報(メール、電話番号、住所)を返します — Marketplace検索とは別の機能です。
このAPIの主な制約は何ですか?
カバー範囲は狭く、Marketplace検索エンドポイント(商品詳細エンドポイントなし、セラー情報なし)と、独立した公開Page検索エンドポイントのみです。比較対象となる公式のMarketplace APIは存在せず、結果は地域スラッグにスコープされていてグローバル検索ではなく、価格や在庫は素早く変化するため、取得結果はスナップショットとして扱ってください。