転売業者やEコマース分析担当者にとって、eBayには他のマーケットプレイスがほとんど公開していないものが1つあります。それが**sold listings(成約済み出品)**です。ほとんどのサイトは希望価格を表示するだけですが、eBayは実際に何がいくらで、いつ、どのコンディションで、どのセラーから売れたかを表示します。これは価格の目安ではなく、取引データそのものです。だからこそeBayは、スニーカーから工業部品まで、あらゆるものの公開価格オラクルとして機能しています。
問題は、そのデータを確実に収集することの難しさです。eBayは地域ごとに別のマーケットプレイスを運営しており、価格や需要が異なる上、自動アクセスへの防御を行い、訪問者に応じて結果をパーソナライズしています。単一のオフィスIPからそのデータを取得すると、1つの国だけの視点になり、しかも欠落が多くなります。このガイドでは、収集する価値のあるもの、公式APIを代わりに使うべき場面、そして残りをレジデンシャルプロキシで正確に収集する方法を扱います。
実際に収集する価値があるもの
eBayの出品ページには情報が密集していますが、分析担当者が本当に重視するのは特定のサブセットです。
出品レベル
- 価格と形式 — 価格、そして重要なのはオークション形式かBuy It Now(即決)形式かということです。この2つを混在させると、算出するどの平均値も破綻します。
- コンディション — 新品、中古、再生品、パーツ用。eBayでは、コンディションがほぼ何よりも価格のばらつきを左右します。
- 配送と場所 — 配送コストと商品の場所は、実際の到着価格を変化させます。
- 商品の詳細情報 — ブランド、モデル、サイズなど、出品同士を比較可能にする構造化された属性です。
成約済み / 終了した出品(価値のある部分)
- 成約価格と成約日 — 買い手が実際に支払った金額と、それがいつだったか。
- 成約率(sell-through) — ある商品の出品のうち、実際に売れた割合と、売れずに期限切れになった割合。これが「仕入れる価値がある」ものと「いつまでも動かない」ものを分ける数値です。
セラーレベル
- フィードバックスコアと評価、ストア名、法人セラーかどうか。
- 品揃えと価格設定行動 — 競合セラーが何をどの価格で出品し、どれくらいの速さで売れているか。
この3番目のカテゴリーが、収集を単なるデータ取得から競合インテリジェンスへと変えるものです。単に商品がいくらで売れるかだけでなく、どのセラーがそこで勝っているかがわかります。
適合する場面では公式APIから始める
これははっきり言っておく価値があります。手間を省けるからです。eBayには公式APIがあります。それが自分の要件をカバーする場合は、まずそちらを検討すべきです。安定していて構造化されており、マークアップが変わっても壊れず、明示的に許可されています。標準的な出品データが必要で、量や地域がその利用規約や制限に収まるなら、それを使ってください。
プロキシが必要になるのは、APIが十分にカバーしないケースです。APIの範囲外の公開データ、分析担当者レベルの広範な地域マーケットプレイスのカバレッジ、あるいは現地の買い手が実際に見ているとおりのマーケットプレイスを見ることなどです。正直な位置づけとしては、これらは代替ではなく補完であり、適合する場面ではAPIから始めるのが単純により良いエンジニアリングです。
残りがプロキシの問題である理由
eBayの3つの特性が、広範な公開データ収集をアクセスの問題にしています。
eBayはマーケットプレイスごとに分かれており、地域に応じてパーソナライズされている。 ebay.com、ebay.co.uk、ebay.de、ebay.com.auは、それぞれ異なる在庫、価格、需要、成約率を持つ別のマーケットプレイスです。同じマーケットプレイス内でも、結果は訪問者の場所に応じてパーソナライズされ、配送オプションや商品の在庫状況が変わります。国境を越えたアービトラージを行う転売業者にとって、これこそが分析対象です。あるものが英国とドイツでそれぞれいくらで売れるか、ということです。米国のIPからebay.deを取得しても、どちらの視点も正確には得られません。そのため、測定対象のマーケットに実際に存在する必要があります(国レベルおよび都市レベルのターゲティング)。
eBayは自動アクセスに対して防御を行っている。 他の大規模マーケットプレイスと同様に、bot対策システムを運用しています。データセンターIPはフラグを立てられたり、スロットリングされたり、インタースティシャルページを表示されたりするため、買い手が見るページではなくbot向けのバージョンを記録することになります(スクレイパーがブロックされる理由)。レジデンシャルIPは実際のユーザーとしての信頼性を持ち、本物の出品を見ることができます。
カバレッジは広範かつ繰り返しが必要。 複数のマーケットプレイスにわたるカテゴリー全体の巡回を、成約率を最新に保つために毎日更新するとなると、リクエスト数は膨大になります。少数のIPからだと、レート制限に引っかかり、部分的なサンプルしか得られません。これは致命的です。ブロックによって偏ったサンプルから算出された成約率は、数字がないよりも悪い結果になります。
適切なマーケットプレイスへのルーティング
Shifterのゲートウェイでは、プロキシのユーザー名に国をエンコードするだけで国を選択できます。1つのエンドポイントで、IPリストは不要です。プロキシの国とマーケットプレイスのドメインを一致させてください。
# ebay.com as a US buyercurl -x customer-USERNAME-country-us:PASSWORD@p.shifter.io:443 \ "https://www.ebay.com/itm/123456789012"
# ebay.co.uk as a UK buyercurl -x customer-USERNAME-country-gb:PASSWORD@p.shifter.io:443 \ "https://www.ebay.co.uk/itm/123456789012"英国の国コードはukではなくgbであることに注意してください。これは些細なことですが、間違えると誤ったマーケットのデータが黙って生成されます。
コードでの収集
eBayの出品データの大部分は初期HTMLに含まれているため、ブラウザを動かすよりもプレーンなHTTPクライアントの方が速く、はるかにコストが低くなります(クライアント設定全体についてはPythonでのレジデンシャルプロキシHTTPクライアントを参照してください)。
import os, requestsfrom bs4 import BeautifulSoup
USER, PASS = os.environ["SHIFTER_USER"], os.environ["SHIFTER_PASS"]
def proxy(country="us"): url = f"http://{USER}-country-{country}:{PASS}@p.shifter.io:443" return {"http": url, "https": url}
MARKETS = {"us": "ebay.com", "gb": "ebay.co.uk", "de": "ebay.de"}
def fetch_listing(item_id, country="us"): domain = MARKETS[country] url = f"https://www.{domain}/itm/{item_id}" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Accept-Language": "en-GB,en;q=0.9" if country == "gb" else "en-US,en;q=0.9", "Accept-Encoding": "gzip, br", } r = requests.get(url, headers=headers, proxies=proxy(country), timeout=30) r.raise_for_status() soup = BeautifulSoup(r.text, "html.parser") return { "item_id": item_id, "market": country, "title": (t := soup.select_one("h1")) and t.get_text(strip=True), "price": (p := soup.select_one(".x-price-primary")) and p.get_text(strip=True), # Condition, shipping and item specifics live in their own blocks; # treat every selector as optional and validate what you extract. }実用上の注意点が2つあります。Accept-Languageをターゲットとするマーケットプレイスに一致させてください。英国のIPがen-USを送信するのは不要な不一致です。また、すべてのセレクターはオプションとして扱ってください。eBayのマークアップはカテゴリーや出品タイプによって異なるため、フィールドが存在することを前提とせず、防御的にパースして検証してください。
広範なカテゴリー巡回にはリクエストごとにローテーションし、単一セラーの在庫をページ送りする際は、1人の買い物客のように見えるようスティッキーセッションを保持してください。IPの品質が実際のページを見られる頻度を決めるため、IPレピュテーションを理解しておく価値があります。一貫した(時々ではない)ブロックは、品質や動作に問題があることを示しています(ブロックを避ける方法)。
出品データを分析に変える
収集は入力であり、分析こそが転売業者が実際に利益を得る部分です。このデータをモデル化する際に重要ないくつかのポイントがあります。
成約済みとアクティブを分ける。 アクティブな出品は希望価格であり、願望です。成約済みの出品は取引です。両者を平均に混ぜてはいけませんし、どちらを指しているか明示せずに「eBayの価格」と言ってはいけません。
コンディションと形式でセグメント化する。 中古品の成約価格と新品のそれは異なる市場です。オークション終了とBuy It Nowの販売も動きが異なります。これらのセグメントをまとめて平均化すると、何も表さない数字になります。
価格だけでなく成約率を計算する。 ある期間における成約数を総出品数で割った値は、流動性を示します。成約率10%の高価格品は、確実に売れる低価格品よりも仕入れ対象として劣ります。
マーケットプレイス間を意図的に比較する。 国境を越えた価格差は転売業者の優位性ですが、それは各マーケットの数値が実際にそのマーケットから収集されている場合に限られます。これこそが上記の地域ルーティングが重要である理由です。
出力を研究向けのデータセットに構造化する方法については、Webスクレイピングによるデータセット構築方法がその仕組みを解説しており、同じ規律が価格モニタリングやデジタルシェルフ分析の基盤にもなっています。
責任を持って利用する
収集するのは公開されている出品データのみ、つまりタイトル、価格、コンディション、配送情報、そして買い手なら誰でも見られる公開のセラー指標です。個人データは対象外です。買い手の身元、プライベートメッセージ、アカウントに付随する個人情報は収集対象ではありません。フィードバックコメントには個人情報が含まれる可能性があるため、慎重に扱う必要があります。
それ以外にも、eBayの利用規約とレート制限を守り、サイトの動作を低下させず、自分の用途をカバーする場合は公式APIを優先してください。eBayの利用規約は自動アクセスを制限しているため、収集は公開データにとどめ、妥当なペースを保ち、不明な点については法的助言を得てください(Webスクレイピングは合法か)。プロキシはリクエストの送信元IPを変えるだけであり、そのリクエストを行うべきかどうかを変えるものではありません。Shifterで許可される内容については、利用規約(acceptable use policy)が正式な基準です。
FAQ
eBayのデータ収集にプロキシが必要なのはなぜですか。 eBayは地域ごとに異なるマーケットプレイスを運営し、価格や需要が異なる上、場所に応じて結果をパーソナライズし、自動アクセスに対して防御を行っているためです。1つのIPからは、1つのマーケットの一部しか見えません。レジデンシャルプロキシを使えば、各マーケットプレイスを本物の現地の買い手として収集できます。
代わりにeBayのAPIを使うべきですか。 自分の要件をカバーする範囲であれば、はい。安定していて構造化され、公式に許可されています。プロキシは、APIの範囲外の公開データや、地域マーケットプレイス全体での広範なカバレッジのために使うものです。まずAPIから始め、残りを収集で補ってください。
成約済みおよび終了した出品を収集できますか。 成約済みの出品は公開されており、希望価格ではなく実際の成約価格であるため、転売業者にとって最も価値のある入力データです。公開データとして収集し、分析では成約済みとアクティブを分けて扱い、eBayの利用規約とレート制限を守ってください。
英国の国コードがgbである必要があるのはなぜですか。
ゲートウェイはISOの国コードを使用しており、英国はgbだからです。ukを使うと、黙って正しくターゲティングされず、間違ったマーケットからebay.co.ukを収集していることに気づかない可能性があります。
eBayにはレジデンシャルプロキシとデータセンタープロキシのどちらを使うべきですか。 レジデンシャルです。マーケットプレイスはデータセンターIPを検知し、異なる扱いをするため、スロットリングされたり、劣化したページを表示されたりします。レジデンシャルIPは、本物の買い手が見るのと同じ、地域的に正確な出品を見ることができます。
結論
eBayの公開されている成約済み出品データは、希望的な数値ではなく取引そのものであるため、非常に価値が高く、転売業者の仕入れ、価格設定、成約率分析の基盤となっています。難点は、それが地域ごとのマーケットプレイスに分かれており、場所に応じてパーソナライズされ、防御されている点です。そのため、分析の正確さは、各マーケットをそのマーケットの本物の買い手として収集できるかどうかに完全に依存します。適合する場面では公式APIを使い、残りはマーケットプレイスに一致させたレジデンシャルIPを経由させ、防御的にパースし、モデルの中で成約済みとアクティブを分けて保持してください。
これを実践すれば、何も表さない混合平均ではなく、仕入れや価格設定の根拠にできる数字が得られます。その収集を地域的に正確かつ網羅的に保つのが、品質の高いレジデンシャルプロキシネットワークです。そして価格ページには、実際に取引しているカテゴリーやマーケットプレイスに対して試すためのGB単位のプランが用意されています。