ブログに戻る

AliExpressのデータ収集に最適なプロキシ:ブロックなしで商品情報を取得する方法

AliExpressのカタログをプロキシを使って安全にパースする方法を解説します:使用するIPの種類、ブロックを回避する方法、商品や価格のデータ収集を自動化する方法について。

📅2026年1月23日
```html

AliExpressは自動データ収集に対して積極的に対抗しています。パーサーはキャプチャ、IPの一時的な禁止、認証の要求を受けます。競合他社の価格を監視したり、ドロップシッピングのトレンド商品を探したり、マーケットプレイス用のデータベースを収集したりする場合、正しく設定されたプロキシがないと、作業は常にブロックとの戦いになります。

このガイドでは、AliExpressのパーシング用プロキシの選び方、IPアドレスのローテーションの設定、アンチボットシステムの回避方法、商品、価格、レビューのデータ収集をブロックのリスクなしに自動化する方法を解説します。

なぜAliExpressはパーシングをブロックするのか、そしてその仕組み

AliExpressは自動データ収集に対する多層的な保護システムを使用しています。プラットフォームは、競合他社がカタログを大量にコピーすることでお金を失い、サーバーがボットによって過負荷になるため、保護は常に改善され、より攻撃的になります。

パーサーを検出する主な方法:

  • 1つのIPからのリクエスト頻度 — 1分間に50件以上のリクエストが1つのアドレスから送信されると、システムは自動的にキャプチャを表示するか、IPを30〜60分間一時的にブロックします。
  • 行動分析 — ボットはページを非常に速く開き(0.5〜1秒)、マウスを動かさず、スクロールせず、インターフェースの要素をクリックしません。
  • クッキーの欠如 — 通常のユーザーはサイトを訪れる際にクッキーを蓄積しますが、パーサーはしばしばクリーンなセッションで動作します。
  • 疑わしいUser-Agent — 古いブラウザのバージョン、サーバーライブラリ(Python-requests、curl)、統計にモバイルデバイスが含まれていない。
  • ブラウザのフィンガープリンティング — AliExpressはフィンガープリンティングを収集します:画面の解像度、タイムゾーン、インストールされたフォント、WebGL、Canvas。同じフィンガープリンティングが異なるIPから送信されると、ボットの兆候です。

システムが疑わしい活動を検出すると、ブロックのグラデーションを適用します:最初にキャプチャを表示し、次に1〜2時間のIPの一時的な禁止、再度の違反があった場合は1日または永久的な禁止となります。

重要: AliExpressはCloudflareと独自のアンチボットシステムを使用しています。彼らはIPだけでなく、TLSフィンガープリンティング(プロトコルのバージョン、暗号の順序)も分析します。古いHTTPクライアントを使用すると、プロキシを使用しても禁止される可能性があります。

AliExpressのパーシングに適したプロキシの種類

プロキシの種類の選択は、パーシングのボリューム、予算、データの品質に対する要求によって異なります。それぞれのタイプを実際の使用シナリオとともに解説します。

プロキシの種類 速度 ブロックのリスク 使用するタイミング
データセンターのプロキシ 高速(50-150 ms) 高い 頻繁にIPをローテーションしながら公開データを迅速にパーシングする場合
レジデンシャルプロキシ 中程度(200-500 ms) 低い 認証を伴うデータの長期的なパーシング
モバイルプロキシ 中程度(300-700 ms) 非常に低い モバイル版からのパーシング、厳しいブロックを回避する場合

迅速なパーシングのためのデータセンターのプロキシ

大量のデータを迅速に収集する必要がある場合に適しています:10000以上の商品価格、カテゴリの特徴、販売者リスト。応答速度が50-150 msであれば、1つのIPから5-10リクエストを毎秒行うことができます。

使用シナリオ: あなたはShopifyでドロップシッピングストアを運営しており、毎日AliExpressから5000商品の価格を更新する必要があります。50-100のデータセンターIPのプールを購入し、10-15リクエストごとにローテーションします。2-3時間で全データを収集し、プロキシのコストは月に50-100ドルです。

欠点: AliExpressはデータセンターのIP範囲を知っており、疑わしいと見なします。攻撃的なローテーションが必要です(5-10リクエストごとにIPを変更)と、行動のエミュレーション(リクエスト間に2-5秒のランダムな遅延を入れる)も必要です。

安定したパーシングのためのレジデンシャルプロキシ

レジデンシャルプロキシは、実際の家庭ユーザーのIPを持っています — プロバイダーはこれを個人に提供します。AliExpressはこのプロキシを通じたリクエストを通常の顧客のリクエストと区別できません。これにより、データセンターと比較してブロックのリスクが5-10倍低下します。

使用シナリオ: あなたはOzonのストアのために競合他社の価格を監視しています。毎日200-300商品をチェックし、AliExpressとロシアの供給者の価格を比較する必要があります。50-100のレジデンシャルIPを使用し、50-100リクエストごとにローテーションします。パーシングには30-40分かかり、数ヶ月間ブロックはありません。

利点: 1つのIPから長く作業でき(100-200リクエストの代わりに10-20)、キャプチャが少なく、認証や販売者の個人アカウントでの作業が可能です。

厳しいブロックを回避するためのモバイルプロキシ

モバイルIP(3G/4G/5Gプロバイダー)は最大の信頼を持っています — AliExpressはモバイルプロバイダーのサブネット全体をブロックすることはできず、それは数百万の実際の顧客をブロックすることになります。1つのモバイルIPは数百のデバイス(NAT)で使用される可能性があるため、攻撃的なパーシングでも異なるユーザーの活動のように見えます。

使用シナリオ: あなたは特定の地域でレジデンシャルIPが禁止されてしまい、クライアントのためにデータを急いで収集する必要があります。2-3のモバイルプロキシを取得し、モバイル版のサイト(m.aliexpress.com)を介してパーシングします。攻撃的なパーシング(1秒あたり1リクエスト)でもブロックはありません。

欠点: レジデンシャルプロキシよりも2-3倍高く、速度が遅く(300-700 msの遅延)、プロバイダーの再接続時にIPが変更される可能性があります。

IPのローテーション設定:変更頻度とタイムアウト

正しいIPのローテーションは、ブロックなしで長期的なパーシングの鍵です。変更が頻繁すぎると疑わしく見え、プロキシが無駄になります。逆に、変更が少なすぎると禁止につながります。

プロキシの種類ごとの推奨ローテーション頻度

プロキシの種類 1 IPあたりのリクエスト数 リクエスト間の遅延 セッションの寿命
データセンター 5-15リクエスト 2-5秒 1-3分
レジデンシャル 50-150リクエスト 3-8秒 10-30分
モバイル 100-300リクエスト 1-3秒 30-60分

さまざまなタスクのためのローテーション戦略

1. カタログの迅速なパーシング(1時間で10000以上の商品)

  • 100-200のデータセンターIPのプールを使用
  • 5-10リクエストごとにローテーション
  • 並列スレッド:異なるIPから10-20の同時リクエスト
  • リクエスト間の遅延:1-2秒(迅速なユーザーのエミュレーション)
  • IPでキャプチャを受け取った場合は、2-3時間プールから除外する

2. 日常的な価格監視(500-1000商品)

  • 10-20のレジデンシャルIPを使用
  • 50-100リクエストごとにローテーション
  • 3-5秒の遅延での順次リクエスト
  • 1つのIPからのリクエスト間でクッキーを保存
  • 行動をエミュレート:時々メインページやカテゴリを開く

3. 認証を伴うパーシング(販売者の個人アカウント)

  • アカウントごとに1つのレジデンシャルまたはモバイルIP
  • セッション中はローテーションなし(30-60分)
  • リクエスト間の遅延は5-10秒
  • クッキー、localStorage、フィンガープリンティングを保存する完全なブラウザのエミュレーション

アドバイス: 遅延にランダム性を追加します。固定の3秒の代わりに、2-5秒の範囲を使用します。これにより、リクエストのパターンがアンチボットシステムにとって予測可能でなくなります。

アンチボットシステムの回避:User-Agent、クッキー、フィンガープリンティング

IPの変更は問題の一部を解決します。AliExpressは、ボットと人間を区別するために、リクエストや行動の数十のパラメータを分析します。プロキシ以外に何を設定する必要があるかを見てみましょう。

User-AgentとHTTPヘッダー

User-Agentは、どのブラウザとオペレーティングシステムがリクエストを行っているかをサーバーに伝えます。パーサーはしばしばライブラリのデフォルト値(Python-requests/2.28.0)を使用し、これがすぐに検出されます。

User-Agentの正しい設定:

  • 最新の人気ブラウザのバージョンを使用:Chrome 120以上、Firefox 121以上、Safari 17以上
  • IPのローテーション時にUser-Agentを変更 — 1つのIPが異なるブラウザを表示してはいけません
  • モバイルUser-Agentを40-50%の割合で追加(AliExpressのトラフィックの半分はモバイルデバイスです)
  • 実際のブラウザから完全なヘッダーセットをコピー:Accept、Accept-Language、Accept-Encoding、Connection、Upgrade-Insecure-Requests

デスクトップ用の正しいヘッダーの例:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1

モバイルデバイス用の例:

User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br

クッキーとセッションの管理

AliExpressは最初の訪問時にクッキーを設定します:セッションID、言語と通貨の設定、トラッキング用のトークン。クッキーなしのパーサーは疑わしく見えます — 通常のユーザーはサイトをナビゲートする際にクッキーを蓄積します。

クッキーの正しい管理:

  • パーシングの前にメインページを開き、すべてのクッキーを保存します
  • 同じIPからのすべての後続のリクエストにこれらのクッキーを使用します
  • IPを変更する際は、新しいクッキーで新しいセッションを開始します
  • パーサーの起動間でクッキーを保存 — これにより、戻ってきたユーザーを模倣します
  • クッキーを1-2時間ごとに更新します(メインページを再度開きます)

ブラウザフィンガープリンティングとTLSフィンガープリンティング

現代のアンチボットシステムは、デバイスを一意に識別するための数十のパラメータの組み合わせであるブラウザのデジタルフィンガープリンティングを収集します。異なるIPからでも同じフィンガープリンティングはボットを示します。

ブラウザフィンガープリンティングに含まれるもの:

  • 画面の解像度と色深度
  • タイムゾーンとシステムの言語
  • インストールされたフォントのリスト
  • WebGLおよびCanvasフィンガープリンティング(グラフィックレンダリングのユニークな方法)
  • オーディオコンテキスト(AudioContextフィンガープリンティング)
  • ブラウザのプラグインのリスト
  • WebRTC、Battery API、その他の最新APIのサポート

簡単なHTTPライブラリ(requests、axios、curl)はこれらのパラメータを持っていません — それらはレンダリングなしでプロトコルレベルで動作します。真剣なパーシングには、完全なブラウザを持つツールが必要です。

ブラウザのエミュレーションのためのソリューション:

  • Selenium + undetected-chromedriver — 検出を回避するために修正された実際のChromeを起動します
  • Puppeteer + puppeteer-extra-plugin-stealth — 自動化を隠すためのプラグインを持つNode.jsライブラリ
  • Playwright — Seleniumの現代的な代替で、パフォーマンスが優れています
  • アンチデテクトブラウザ — Dolphin Anty、AdsPower、Multilogin(インターフェースを介して動作)

重要: TLSフィンガープリンティング(SSL接続のフィンガープリンティング)も分析されます。古いバージョンのPythonやNode.jsは、ボットを示す古い暗号スイートを使用します。最新のライブラリのバージョンやcurl_cffiを使用して、現代のブラウザを模倣してください。

AliExpressのパーシング用のツール

特定のタスクのためにゼロからパーサーを書く意味はありません。標準的なデータ収集(商品、価格、レビュー)には、開発の週を節約する既存のソリューションがあります。

APIを持つ商業サービス

1. ScraperAPI (scrape.do, scrapingbee.com)

プロキシと保護の回避に関するすべての作業を引き受けるクラウドサービス。あなたはAliExpressの商品URLを送信し、彼らはデータを含むHTMLまたはJSONを返します。

  • 利点: 自分のプロキシは不要、自動キャプチャ回避、人気サイト用の既存のパーサー
  • 欠点: 大量の場合は高価(100Kリクエストあたり50ドルから)、サードパーティサービスへの依存
  • 使用するタイミング: 一時的なタスク、プロトタイピング、小規模(毎月10K商品まで)

2. Bright Data (luminati.io)

パーシング用の独自のツールを持つ最大のプロキシプロバイダー。プロキシだけでなく、AliExpressの更新された商品データセットも提供します。

  • 利点: 巨大なIPプール(7200万以上のレジデンシャル)、エンタープライズクライアント向けのインフラ
  • 欠点: 非常に高価(毎月500ドルから)、複雑な料金体系
  • 使用するタイミング: 大規模ビジネスで予算がある場合、大量のデータを常にパーシングする場合

オープンソースのソリューション

1. Scrapy + scrapy-rotating-proxies

Pythonでのパーシング用の人気フレームワーク。非同期リクエスト、プロキシの自動ローテーション、CSV/JSON/データベースへのエクスポートをサポートしています。

Scrapyでのプロキシ設定の例:

# settings.py
ROTATING_PROXY_LIST = [
    'http://user:pass@proxy1.example.com:8000',
    'http://user:pass@proxy2.example.com:8000',
    'http://user:pass@proxy3.example.com:8000',
]

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.retry.RetryMiddleware': 90,
    'scrapy_rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'scrapy_rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

# 禁止回避のための設定
ROTATING_PROXY_PAGE_RETRY_TIMES = 5
ROTATING_PROXY_BACKOFF_BASE = 300  # プロキシの禁止時間(秒)

2. Puppeteer + puppeteer-extra-plugin-stealth

アグレッシブな保護を持つサイト(AliExpressのような)には、完全なブラウザが必要です。PuppeteerはDevToolsプロトコルを介してChromeを制御し、stealthプラグインは自動化の兆候を隠します。

// parser.js
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({
    args: [
      '--proxy-server=http://proxy.example.com:8000',
      '--no-sandbox',
      '--disable-setuid-sandbox'
    ]
  });

  const page = await browser.newPage();
  
  // プロキシの認証
  await page.authenticate({
    username: 'user',
    password: 'pass'
  });

  // 現実的なビューポートの設定
  await page.setViewport({
    width: 1920,
    height: 1080,
    deviceScaleFactor: 1
  });

  // 商品のパーシング
  await page.goto('https://www.aliexpress.com/item/1234567890.html', {
    waitUntil: 'networkidle2'
  });

  const productData = await page.evaluate(() => {
    return {
      title: document.querySelector('.product-title-text')?.innerText,
      price: document.querySelector('.product-price-value')?.innerText,
      rating: document.querySelector('.overview-rating-average')?.innerText
    };
  });

  console.log(productData);
  await browser.close();
})();

技術者でないユーザー向けのデスクトップアプリケーション

1. Octoparse

コードなしのビジュアルパーサー — ページの要素をクリックすると、プログラムが構造を記憶し、データを収集します。組み込みのプロキシサポートとタスクスケジューラがあります。

  • 利点: プログラミング不要、動的コンテンツで動作、バックグラウンド作業用のクラウド版
  • 欠点: 無料版には制限(毎月10K行)、時々複雑な保護に対処できない
  • 価格: Standardプランは月75ドルから

2. ParseHub

Octoparseの類似品で、よりシンプルなインターフェースを持っています。人気サイト用の組み込みテンプレートのおかげで、AliExpressでよく機能します。

  • 利点: 200ページまでの無料プラン、プロキシの簡単な設定
  • 欠点: 無料版での動作が遅い、高度な機能(API、webhooks)がない

ジオターゲティング:異なる国の価格をパーシングする方法

AliExpressは、ユーザーの国に応じて異なる価格、品揃え、配送条件を表示します。国際的なドロップシッピングに取り組んでいる場合や、異なる市場の価格を比較している場合は、特定の地域のプロキシが必要です。

AliExpressはどのようにユーザーの国を特定するか

プラットフォームは、いくつかのデータソースを使用しています:

  • IPアドレス — 主な方法で、IPのジオロケーションによって国を特定します
  • クッキー — 選択した国をaep_usuc_fに保存します(置き換え可能)
  • Accept-Languageヘッダー — ブラウザの言語ですが、決定的な要因ではありません
  • URL内の通貨 — ?currency=USDのパラメータやサブドメイン(ru.aliexpress.com)

特定の国の価格を確実にパーシングするには、その地域のプロキシを使用する必要があります。クッキーのみを置き換えることは常に機能するわけではありません — AliExpressはIPのジオロケーションを優先します。

パーシングに適した人気地域とその特徴

価格の特徴 なぜパーシングするのか
アメリカ USDでの価格、しばしばヨーロッパよりも低い アメリカでのドロップシッピング、Amazonとの比較
ロシア RUBでの価格、関税とVATを考慮 Wildberries、Ozonとの比較
ドイツ EURでの価格、EU倉庫からの迅速な配送 ヨーロッパでのドロップシッピング、eBay.de
ブラジル 関税のため高い価格だが、大きな需要 ローカルeコマース(Mercado Livre)

プロキシを介したジオターゲティングの設定

大多数のレジデンシャルおよびモバイルプロキシプロバイダーは、接続パラメータやAPIを介して国(さらには都市)を選択することを許可しています。

プロキシのユーザー名を介して国を選択する例:

# フォーマット:username-country-国コード
proxy_us = "http://username-country-us:password@gate.example.com:8000"
proxy_de = "http://username-country-de:password@gate.example.com:8000"
proxy_br = "http://username-country-br:password@gate.example.com:8000"

# アメリカの価格をパーシング
response_us = requests.get(
    "https://www.aliexpress.com/item/1234567890.html",
    proxies={"http": proxy_us, "https": proxy_us}
)

# ドイツの価格をパーシング
response_de = requests.get(
    "https://www.aliexpress.com/item/1234567890.html",
    proxies={"http": proxy_de, "https": proxy_de}
)

地域に合わせてヘッダーを追加で設定:

  • Accept-Language: en-USはアメリカ、de-DEはドイツ、pt-BRはブラジル用
  • 適切なサブドメインを使用:ru.aliexpress.comはロシア、de.aliexpress.comはドイツ用
  • レスポンス内の通貨を確認 — 違う通貨が表示された場合、ジオターゲティングが機能していません

パーシング時の一般的な間違いとその回避方法

正しいプロキシと設定があっても、パーシングのロジックのエラーによりブロックされることがあります。よくある問題とその解決策を見てみましょう。

エラー1:あまりにも攻撃的なパーシング

問題: パーサーが1つのIPから1分間に100リクエストを行い、データを迅速に収集しようとします。AliExpressはこれをDDoS攻撃として検出し、IPをブロックします。

解決策: 遅延とリクエスト数の制限を追加します。レジデンシャルプロキシの場合、安全な速度は1つのIPからの10-20リクエスト/分(1リクエストあたり3-6秒)です。プロキシを失うよりも、長くパーシングする方が良いです。

エラー2:キャプチャとエラーの無視

問題: パーサーがキャプチャのあるページを取得しますが、それを通常のコンテンツとしてパーシングし続けます。その結果、データベースに空のレコードが数千件追加されます。

解決策: パーシングの前にサーバーのレスポンスを確認します。HTMLに「captcha」、「Access Denied」または403/429のレスポンスコードが含まれている場合は、そのIPを1-2時間使用しないようにします。

def is_blocked(html):
    blocked_keywords = ['captcha', 'access denied', 'too many requests']
    return any(keyword in html.lower() for keyword in blocked_keywords)

response = requests.get(url, proxies=proxy)
if is_blocked(response.text):
    print(f"Proxy {proxy} is blocked, switching...")
    # 2時間プールからプロキシを除外
    blocked_proxies[proxy] = time.time() + 7200
    continue

エラー3:古いデータのパーシング

問題: AliExpressはCDN(Cloudflare)を介してページをキャッシュします。パーサーは最新の価格の代わりに2-3時間前のデータを取得します。

解決策: キャッシュを回避するためにURLにランダムなパラメータを追加するか、Cache-Control: no-cacheヘッダーを使用します。

import random
import time

# キャッシュを回避するためにURLにタイムスタンプを追加
url = f"https://www.aliexpress.com/item/1234567890.html?_t={int(time.time())}"

# またはヘッダーを使用
headers = {
    'Cache-Control': 'no-cache',
    'Pragma': 'no-cache'
}

エラー4:動的コンテンツの不適切な処理

問題: AliExpressの商品価格と特徴は、ページの読み込み後にJavaScriptを介して読み込まれます。単純なHTTPリクエストは、データなしの空のHTMLテンプレートを取得します。

解決策: JavaScriptを実行し、コンテンツが完全に読み込まれるのを待つヘッドレスブラウザ(Selenium、Puppeteer、Playwright)を使用します。あるいは、JSONでデータを返すAPIエンドポイントを見つけます — これはしばしばDevToolsのNetworkで利用可能です。

エラー5:ロギングとモニタリングの欠如

問題: パーサーが1週間動作し、データを収集しますが、誰も品質を確認しません。サイトの構造の変更により、30%のレコードが空であることが判明します。

解決策: すべての重要なイベントをロギングします — 成功したリクエスト、エラー、プロキシのブロック、データ構造の変更。エラーの数が10%を超えた場合にアラートを設定します。

パーサーを起動する前のチェックリスト:
✅ リクエスト間の遅延が設定されています(レジデンシャルプロキシの場合は3-8秒)
✅ IPのローテーションが機能しています(1つのIPあたり50-100リクエストを超えない)
✅ User-Agentが最新で、IPとともに変更されます
✅ クッキーが保存され、再利用されています
✅ キャプチャとブロックのチェックがあります
✅ ロギングとモニタリングが設定されています
✅ 100商品のテスト起動が成功しました

結論

AliExpressのパーシングは包括的なアプローチを必要とします:正しいプロキシは解決策の一部に過ぎません。適切なIPローテーション、実際のブラウザのエミュレーション、クッキーとフィンガープリンティングの管理、データ品質の継続的なモニタリングが必要です。あまりにも攻撃的なパーシングは、高価なプロキシを使用してもブロックにつながりますが、適切な設定を行えば、問題なくデータを数ヶ月間収集できます。

ほとんどのタスク(競合他社の価格監視、ドロップシッピング用のカタログ収集、トレンド分析)には、レジデンシャルプロキシが最適な選択です。これらは作業速度とAliExpressからの信頼レベルのバランスを提供します。予算が限られていて高い速度が必要な場合は、データセンターのプロキシから始めてください。ただし、より頻繁なブロックと攻撃的なローテーションの必要性に備えておく必要があります。

プロキシの質は量よりも重要です。正しい設定を持つ10の質の高いレジデンシャルIPは、高いブロック率の100の安価なデータセンターのプロキシよりも良い結果をもたらします。ブラウザのエミュレーション、ロギング、モニタリングの設定に時間を投資してください — これは、キャプチャやブロックの問題がない安定したパーサーの動作に報われます。

```