Facebook MarketplaceのスクリーンショットからItem Name、Price、Conditionを取得
スクレイパーはFacebook Marketplaceのウェブページで動作し、モバイルアプリのカードや保存済みギャラリー写真には対応していません。取得した各リスティングからItem Name、Price、Condition、Locationを読み取り、スクリーンショット1枚あたり5〜10秒で処理します。
スクリーンショット1枚あたり5〜10秒 · 印字テキストで最大99%の精度
Facebook Marketplaceの出品スクリーンショットから抽出できる6つの項目
Facebook Marketplaceのスクリーンショットには、出品データとプラットフォームのUIが混在しています。ナビゲーションバー、スポンサー広告、おすすめ表示などがすべて表示テキストを生成し、カスタム列抽出を使用すると、AIは画面上の位置ではなく意味的な役割に基づいて各項目を識別します。
商品タイトルです。通常、出品カード内で最も太字のテキストです。
ドル記号の横にある希望価格で、その下のスポンサー広告とは区別されます。
価格の近くにあるバッジで、「中古 - ほぼ新品」のような完全な状態を表す語句を取得します。
価格の下またはカードの下部にある都市名または地域名です。
別のプロフィールカードに表示される出品者のFacebook表示名です。
オーバーレイまたはバッジから読み取られる「出品中」「売却済み」「保留中」などのステータスです。
これらを列名として入力してください。AIは、モバイル版とデスクトップ版のカード構造とレイアウトの文脈に基づいて各項目を読み取ります。
価格は3か所に表示される。どれが掲載価格か?
Facebook Marketplaceのスクリーンショットには、掲載情報だけが写っているわけではありません。ナビゲーションバー、スポンサー付き商品、おすすめの掲載情報など、表示されるテキストは多岐にわたります。Redditでは、複数の掲載情報を管理する出品者が手動で確認する様子が次のように語られています:「掲載情報が25件ほどあり、更新が必要かどうかほぼ毎日数回チェックしています」。データはスクリーンショット内に存在しますが、従来の抽出方法ではすべてのピクセルを同等に扱います。ここでは、その方法がなぜ機能しないのか、そしてセマンティックリーディングがどのように解決するのかを説明します。
Facebook Marketplaceのスクリーンショットが従来のOCRでうまく処理できない理由
リスティングカードがプラットフォームのノイズに囲まれている。ナビゲーションバー、スポンサーリスティング、「Buyer Protection」バッジ、「You Might Also Like」のおすすめ表示など、すべてがテキストとして認識される。従来のOCRはすべての要素を均等に読み取るため、リスティングのItem Nameとその下にあるスポンサータイトルを区別できない。
Priceフィールドがレイアウト領域ごとに重複して表示される。リスティングカードの上部コーナーには大きな価格が表示され、検索結果ビューでは同じ価格が小さなテキストで繰り返され、説明文にも再掲されることがある。基本的なOCRでは、重複を排除できないまま、価格らしき値が3つ出力される。
モバイルとデスクトップのレイアウトに共通点がまったくない。モバイルアプリではリスティングがバッジオーバーレイ付きの縦型カードで表示される。デスクトップのリスティングページでは、同じフィールドがサイドパネルにラベル付きで表示される。テンプレートベースのツールでは、同じリスティングに対して2つの異なる設定が必要になる。
セマンティック抽出が各フィールドを文脈から読み取る仕組み
フィールド名を指定すると、AIは位置ではなく意味に基づいて値を特定します。 Item Name、Price、Condition、Location と入力します。ビジュアルモデルがカード構造を読み取り、最も太いテキストをItem Name、ドル記号の横の大きな数字をPriceとして識別し、下のスポンサーリスティングにある「無料」タグは無視します。
重複する価格値は1つにまとめられます。 Priceがカードのヘッダーと説明文の両方に表示されている場合、AIはカードの価格を出品価格として認識します。スプレッドシートの各列には、クリーンな値が正確に1つだけ入ります。
1つの列セットがモバイル、デスクトップ、検索結果で共通して使えます。 モバイルアプリのカード、デスクトップの詳細ページ、検索結果ビューを同じバッチにアップロードします。AIは各レイアウトに個別に適応し、モバイルカードのバッジからConditionを、デスクトップページのサイドパネルからConditionを抽出します。
マーケットプレイスのスクリーンショット集から、ひとつの構造化リストへ
出品中のアイテムの追跡、お住まいの地域で出品されているものの確認、完了した取引のアーカイブなど、マーケットプレイスのスクリーンショットが保存されたフォルダから、ひとつの構造化レコードにまとめるまでの流れをご紹介します。
マーケットプレイスのスクリーンショットをアップロード
ギャラリーからキャプチャ画像を取り込みます。モバイルアプリの出品カード、デスクトップの詳細ページ、複数アイテムが表示された検索結果などに対応。PNG、JPG、WebP形式であれば、どのソースからの画像でも問題ありません。電化製品、家具、車両、賃貸物件など、異なるマーケットプレイスカテゴリのスクリーンショットを同じバッチに混在させても、事前の仕分けは不要です。
必要なフィールドを定義
追跡用スプレッドシートの列を入力します:Item Name、Price、Condition、Location、Seller Name、Listing Status。AIが各スクリーンショットを読み取り、見つかった情報を入力します。モバイルカードでは、太字のコーナーテキストからPrice、バッジからConditionを取得し、デスクトップページではサイドパネルから同じフィールドを読み取ります。特定のスクリーンショットに表示されないフィールドは空白のままになります。
統合された出品スプレッドシートをエクスポート
処理時間はスクリーンショット1枚あたり5〜10秒で、各画像を開いて手動でフィールドを入力する場合と比べて約18倍高速です。出力は、定義した列を含む1つのXLSXまたはCSVファイルです。Statusでフィルタリングしてアクティブな出品と売却済みの出品を確認したり、Priceで並べ替えて高額アイテムを優先したりできます。Excelに直接エクスポートするか、アドオンを介してGoogle Sheetsにプッシュして継続的な追跡が可能です。
Facebook Marketplaceのスクリーンショット抽出が最適なケースと注意すべきケース
最適なケース
出品詳細ページの高解像度ネイティブスクリーンショット。Facebookアプリまたはデスクトップサイトからの高コントラストで機械描画されたテキストは、Item NameやPriceなどのフィールドで最大99%の精度に達します。
1つのバッチに混在するUIバージョン。モバイルアプリのカードとデスクトップの詳細ページを、単一の列定義でまとめて処理できます。AIが各レイアウトに個別に適応するためです。
出品カードがメインの被写体であるクリーンなスクリーンショット。出品情報がフレームの大部分を占める場合、AIはナビゲーションバーやおすすめ表示などの隣接UI要素からフィールドを分離します。
注意すべきケース
メッセージアプリ経由で転送されたスクリーンショット。WhatsAppやMessengerは画像を圧縮するため、Conditionバッジなどの小さなテキストの精度が低下します。最良の結果を得るにはネイティブのスクリーンショットを使用してください。
1枚のスクリーンショットに複数の出品が含まれる場合。AIは最も視覚的に目立つカードを読み取ります。アイテムごとにクリーンな抽出を行うには、各出品を個別にキャプチャしてください。
斜めから撮影した画面の写真。映り込みや歪みにより精度が低下します。このツールはデバイスのスクリーンショットを処理するものであり、モニターの写真ではありません。スマートフォンやコンピューターでネイティブのスクリーンショットを撮影してください。
よくある質問
「Sold」オーバーレイが表示されているスクリーンショットからでも、Item NameとPriceを抽出できますか?
はい。AIは「Sold」バッジの下にある出品データを読み取ります。オーバーレイは半透明で、Item NameとPriceを完全には隠さないため、Listing Status列にはオーバーレイから「Sold」が記録され、Item NameとPriceにはその下の元のデータが返されます。
同じスクリーンショットに表示されるスポンサー広告や「おすすめ商品」のレコメンドはどのように処理されますか?
AIは、サイズ、位置、構造的な手がかりなど、視覚的な目立ち方から主要な出品カードを特定し、そのカードのみから定義したフィールドを読み取ります。スポンサーラベル、広告マーカー、レコメンドセクションは別の視覚要素として認識され、抽出から除外されます。主要な出品カードが切り取られていたり、スクリーンショット領域の約半分未満しか占めていない場合、AIが周囲のコンテンツから分離するのが難しくなることがあります。正確性を高めるには、対象の出品カードが主な視覚的焦点となるスクリーンショットを撮影してください。
スクリーンショットのLocationに「市」しか表示されていません。それでも抽出できますか?
はい。Facebook Marketplaceでは通常、価格の下に市または地区名が表示されます(例:「San Francisco」や「Berkeley, CA」)。AIは表示されている場所のテキストを抽出するため、市名のみが表示されている場合は、それがLocation列に入ります。この値はFacebookが表示することを選択した詳細を反映しており、ツールで上書きすることはできませんが、「San Francisco」が構造化された列にあることは、タグ付けされていないテキストに埋もれているよりもはるかに有用です。
Facebook Marketplaceのモバイルアプリとデスクトップサイトの両方のスクリーンショットを、1つのバッチで一括処理できますか?
はい。AIは各スクリーンショットを列定義に基づいて個別に処理します。右上にPrice、バッジとしてConditionが表示されるモバイルアプリのカードも、サイドパネルにPriceが表示されるデスクトップの詳細ページも、同じフィールドで読み取られます。すべてのスクリーンショットが同じスプレッドシートの1行になり、アップロード前にモバイルとデスクトップのキャプチャを分ける必要はありません。
Condition列には「Used - Like New」のような完全な状態ラベルが取り込まれますか、それとも「Used」のみですか?
AIはスクリーンショットに表示されている完全な状態ラベルを、修飾語や補足情報を含めてそのまま取り込みます。バッジに「Used - Like New」と表示されていれば、Condition列には「Used - Like New」が入ります。別の出品で「New without tags」と表示されていれば、その文言がそのまま列に入ります。Facebookは標準的な状態ラベルのセットを使用していますが、出品者は状態欄に自由記述の説明を追加することもでき、AIはマッピングや正規化を行わず、表示されているバッジやタグのテキストをそのまま読み取ります。これにより、スプレッドシートでフィルタリング、並べ替え、正規化するための生の状態データが得られます。
中古マーケットプレイス概要に戻る。Facebook Marketplace、Vinted、Carousell、OfferUpなどをカバーしています。
詳細ガイド: マーケットプレイスのスクリーンショットを1つのスプレッドシートにバッチ処理する · スクリーンショットからのデータ抽出の一般的なガイド