Wildberries、Ozon、Amazon、またはGoogle MapsのスクレイピングのためにApifyでアクターを起動する場合、いずれかの時点で、組み込みのApify Proxyに支払うか、独自のIPアドレスプールを接続するかの問題が生じます。大規模なボリュームでは、コストの差が月に数万ルーブルになることがあります。この記事では、Apifyのトラフィック料金がどのように計算されるか、独自のプロキシが有利になるのはいつか、そしてそれをアクターに技術的に接続する方法について、コードの例を交えて説明します。
Apifyアクターとは何か、なぜプロキシが必要か
Apifyは、独自のインフラを構築することなく、準備されたスクレイパー(アクター)を起動するためのプラットフォームです。Apify Storeには、Amazonのパーサー、Google Maps Scraper、Instagram Scraper、WildberriesやOzonからの商品カードを収集するためのアクターなど、数百の準備されたアクターがあります。これらのほとんどは、ターゲットサイトがApifyのデータセンターのIPアドレスを大量のリクエストで迅速に禁止するため、プロキシを必要とします。
アクター内のプロキシは、3つのタスクを解決します:地理的制限を回避する(たとえば、Wildberriesで「モスクワ」地域の価格を収集する必要がある場合)、CAPTCHAの頻度と一時的な禁止を減少させる、そして多くのIP間で負荷を分散させ、ボットではなく通常のユーザーの行動を模倣します。プロキシなしでは、ほとんどのマーケットプレイス用のアクターは、全く起動しないか、数分の作業でエラーのあるデータを収集します。
Apifyには、1行のコードで接続できる組み込みのソリューションであるApify Proxyがあります。これはスタートには便利ですが、トラフィックはGB単位で課金され、定期的または大規模なスクレイピングでは、請求額がすぐに増加します。これが理由で、プラットフォームの経験豊富なユーザーは、組み込みのものではなく、アクターに独自のプロキシを接続することが増えています。
組み込みのApify Proxyの仕組みとその料金体系
Apify Proxyは、データセンター、レジデンシャル(パートナーのプールを通じて)、および検索結果のパーシング用のGoogle SERPプロキシの3種類のIPを提供します。接続は非常に簡単で、アクターの設定にuseApifyProxy: trueというパラメータを指定するだけで、プラットフォームが自動的に各リクエストまたはセッションごとにIPをローテーションします。
課金モデルの問題があります:Apify内のレジデンシャルプロキシのトラフィックはGB単位で課金され、組み込みのソリューションのGBあたりの価格は通常、プロキシの直接供給者よりも高くなります。なぜなら、Apifyは統合とプールの管理に対してマークアップを加えるからです。小規模なテスト起動(毎月数千リクエスト)では、これは重大ではありません。しかし、アクターが監視モードで動作している場合—たとえば、毎時5000SKUのWildberriesの価格を取得する場合—トラフィックの消費は指数関数的に増加し、組み込みのプロキシはプロジェクトの予算の最も高い項目になり、Apifyプランのコストをも上回ります。
追加の注意点:組み込みのApifyプールは、プラットフォームのすべてのクライアントに共通です。これは、IPアドレスが他のユーザーによってすでに「露出」されている可能性があることを意味します。同じサイトをスクレイピングしているユーザーによってです。これは、OzonやAvitoのような厳しいアンチボット保護を持つマーケットプレイスでのCAPTCHAや禁止のリスクを高めます。
独自のプロキシプールが安くなるのはいつか:数字での計算
自分のプロキシに移行することが正当化されるのはいつかを理解するためには、Apify Proxyのトラフィックコストと、直接のプロキシ供給者の同様のボリュームのコスト、さらに独自のプールの統合とサポートにかかる時間を比較する必要があります。
実際には、3つのシナリオがあります:
- 一回限りのスクレイピング(毎月1GB未満のトラフィック) — 組み込みのApify Proxyが有利です:少量のデータ収集のために独自のプールを設定する時間を無駄にする意味はありません。
- 定期的な監視(毎月5〜50GB) — 転換点です。ここでは計算を始めるべきです:アクターが毎日動作し、WildberriesやOzonから商品カードを収集する場合、組み込みのプロキシでのトラフィック消費は、固定料金または無制限プランの独自のプールよりも早く増加します。
- 産業用スクレイピング(毎月50GB以上、数十のアクター、複数のソース) — 独自のプールはほぼ常に安価です。なぜなら、プラットフォームの仲介者のマークアップなしでトラフィックまたはIPの数量に対する直接の価格を交渉する機会が生まれるからです。
簡単な計算の例:アクターが毎日10,000の商品カードを処理し、各ページが画像やスクリプトを考慮して平均300KBの重さがある場合(リソースの読み込み最適化なし)、月間で約90GBのトラフィックが発生します。Apify Proxyのレジデンシャルトラフィックの料金プランでは、最終的な合計がしばしば外部プロキシ供給者の同様のボリュームの1.5〜2倍を超えます。アクターが画像や外部スクリプトの読み込みをブロックするように設定されている場合(これはPuppeteer/Playwrightの設定を通じて簡単に行えます)、実際のトラフィックの重さは大幅に減少し、独自のプロキシに移行することによる節約がさらに顕著になります。
アクターに接続するプロキシの種類
プロキシの種類の選択は、アクターがどのサイトをスクレイピングしているか、そしてそのサイトがボットトラフィックにどれだけ敏感であるかに直接依存します。
| プロキシの種類 | Apifyでの使用時期 | ブロックのリスク |
|---|---|---|
| データセンタープロキシ | 厳しいアンチボット保護のないサイト、APIのようなソース、静的カタログのスクレイピング | マーケットプレイスでのリスクが高い |
| レジデンシャルプロキシ | Wildberries、Ozon、Amazon、Google Maps Scraper — データセンターのIPを検出するサイト | 正しいローテーションで低い |
| モバイルプロキシ | Apifyアクターを通じてのソーシャルメディア(Instagram、TikTok)のスクレイピング、IPの「クリーンさ」が最大限必要な場合 | 最小限 |
WildberriesやOzonのようなマーケットプレイスのスクレイピングには、レジデンシャルプロキシが最適な選択です。なぜなら、これらは実際の家庭プロバイダーのIPを使用し、厳しいアンチボットフィルターに引っかかることが少ないからです。より保護されていないソース(RSS、オープンカタログ、企業サイト)には、データセンターのIPで十分です — それらは安価で高速です。
アクターに独自のプロキシを接続する方法:コードと設定
ApifyのほとんどのアクターはCrawlee(旧Apify SDK)を基にしており、proxyConfigurationパラメータを通じて独自のプロキシリストを渡すことをサポートしています。組み込みのプールの代わりに、あなたのプロキシアドレスの配列を指定します。
import { Actor } from 'apify';
import { CheerioCrawler, ProxyConfiguration } from 'crawlee';
await Actor.init();
// useApifyProxyの代わりに独自のプロキシリストを渡す
const proxyConfiguration = new ProxyConfiguration({
proxyUrls: [
'http://user:[email protected]:12345',
'http://user:[email protected]:12345',
'http://user:[email protected]:12345',
],
});
const crawler = new CheerioCrawler({
proxyConfiguration,
maxRequestsPerCrawl: 5000,
async requestHandler({ request, $, log }) {
const title = $('title').text();
log.info(`収集したページ:${title}`);
await Actor.pushData({ url: request.url, title });
},
});
await crawler.run(['https://www.wildberries.ru/catalog/...']);
await Actor.exit();
あなたのプロキシプールがプロバイダー側でローテーションをサポートしている場合(ほとんどのレジデンシャルサービスがそうで、セッションまたはリクエストごとのローテーションプールを含む)、URLにセッションパラメータを持つ1つのエンドポイントを指定するだけで、IPのローテーションが自動的に行われ、数百のアドレスを手動で列挙する必要がなくなります。
Pythonのアクターの場合(たとえば、Apify SDKを使ってカスタムスクリプトを起動する場合)、接続は似たような形になります:
import requests
proxies = {
"http": "http://user:[email protected]:12345",
"https": "http://user:[email protected]:12345",
}
response = requests.get(
"https://www.ozon.ru/category/...",
proxies=proxies,
headers={"User-Agent": "Mozilla/5.0"},
timeout=15
)
print(response.status_code)
print(response.text[:500])
重要な点:独自のプロキシに移行する際には、セッションのローテーションとリクエスト間の遅延を手動で設定することが必須です — 組み込みのApify Proxyはこれを自動的に行っていましたが、外部プールを接続する際には、アクターのコードまたはクローラーの設定にロジックを記述する必要があります。
比較表:組み込みのプロキシ vs 自分のプロキシ
| 基準 | Apify Proxy(組み込み) | 独自のプロキシプール |
|---|---|---|
| 接続速度 | 1行のコードで、設定不要 | 統合に15〜30分必要 |
| 小規模ボリュームのコスト | 有利 | 稀な起動には過剰 |
| 10〜50GB/月のコスト | トラフィックに比例して増加 | 有利で、しばしば固定モデル |
| IPプールの「クリーンさ」 | 共有プール、他のクライアントとの重複の可能性 | あなたのニーズに合わせた専用またはローテーションプール |
| 地理ターゲティングの柔軟性 | 限られた国/地域のセット | マーケットプレイスに合わせた特定の都市/地域の選択 |
| ローテーションの制御 | 自動、設定なし | 必要なパターンに手動で設定 |
ケーススタディ:マーケットプレイスのスクレイピング実践
Wildberriesでの価格監視。 競合の価格を3000〜10000SKUで数回にわたって追跡するセラーは、通常、組み込みのApify Proxyから始めますが、最初の月の大きなトラフィック請求書の後、地域に結びついたレジデンシャルプロキシに移行します。これにより、コストを削減するだけでなく、特定の都市の購入者が見る価格を正確に把握できるため、Wildberriesは倉庫や配送地域によって異なる価格を表示します。
Ozonでの商品カードの収集。 Ozonは行動分析を積極的に使用し、均一なリクエストパターンでIPを迅速に禁止します。組み込みのApify Proxyを通じて動作するアクターは、他のプラットフォームのユーザーが同様のタスクのために同じIPを同時に使用しているため、CAPTCHAに直面することが多くなります。独自のロジックでローテーションとリクエスト間のランダムな遅延を持つレジデンシャルプロキシの専用プールに移行することで、CAPTCHAの頻度が数倍に減少します。
Google Mapsとレビューのスクレイピング。 地理的特異性が必要ないタスク(たとえば、全国の企業の連絡先情報を収集する場合)では、しばしばデータセンタープロキシで十分です — これはレジデンシャルプロキシよりも速く、ターゲットサイトが攻撃的なアンチボット保護を適用していない場合、大量のトラフィックに対してはかなり安価です。
Apifyプロジェクトのためのプロキシ選択チェックリスト
- アクターの実際のトラフィック量を月ごとに計算します(リクエスト × ページの平均重量)
- この量を組み込みのApify Proxyの料金と比較します — 定期的に5〜10GBを超える場合は、代替案を考慮します
- ターゲットサイトがボットにどれだけ敏感かを判断します — OzonのようなマーケットプレイスではレジデンシャルIPが必要です
- 特定の地域への地理的結びつきが必要かどうかを確認します(WildberriesやOzonに関連)
- 外部プールに移行する際には、セッションのローテーションとリクエスト間の遅延を手動で設定します
- アクター内で不要なリソース(画像、フォント、トラッカー)の読み込みを無効にします — これにより、プロキシの種類に関係なくトラフィック消費が減少します
- 新しい設定にすべてのアクターを移行する前に、小規模でプールをテストします
結論
組み込みのApify Proxyは、一回限りのタスクや小規模なテスト起動には便利ですが、マーケットプレイスの定期的または産業用スクレイピングでは、そのコストが独自のプロキシプールの費用をすぐに超えます。移行には初期設定が少し多く必要ですが — アクターのコードにローテーション、セッション、およびプロキシ設定を記述する必要があります — しかし、10〜50GBのトラフィックからは、最初の月にすでに元が取れます。
Wildberries、Ozon、またはAmazonからデータを収集するアクターがある場合は、レジデンシャルプロキシを検討してください — これにより、ブロックのリスクを低く抑え、価格を正確に表示するために必要な地域を指定できます。厳しいアンチボットがないより保護されていないソースには、より予算に優しいデータセンタープロキシが適しています。また、Apifyアクターを通じてモバイルアプリやソーシャルメディアをスクレイピングする場合は、モバイルプロキシを検討してください — これにより、最小限の検出リスクで最大のIPの「クリーンさ」が得られます。