スクレイピング

スクレイピング時にブロックされないようにする方法

セッション制御の改善、ペース調整、フィンガープリンティング、ターゲティングを活用し、レジデンシャルプロキシを使ってスクレイピング時にブロックされないようにする方法を学びます。

Chris Collins

Chris Collins

2026年6月4日 · 1 分で読める

レジデンシャルプロキシプールがあれば、データセンターIPでは到達できない市場、店舗、ローカライズされたSERPにアクセスできるようになる。しかし、ボットのように振る舞うスクレイパーを救うことはできない。これが、レジデンシャルプロキシでスクレイピングする際にブロックを回避する方法を尋ねるチームが犯す根本的な間違いだ。プロキシは1つの層に過ぎない。検知システムはリクエストパターン全体をスコアリングする。IPの品質、セッションの一貫性、ヘッダー、TLSの挙動、ナビゲーションフロー、リクエストレート、Cookieの扱い、さらにはリトライが人間らしいか機械的かまで見ている。

大規模に収集を行う場合、ブロック回避は隠れることよりも、明らかな異常を減らすことに重きが置かれる。目標は見えなくなることではなく、運用上正常に見えることだ。

レジデンシャルプロキシでスクレイピングする際にブロックを回避する方法

最初の決定はセッション設計だ。多くのスクレイパーは、IPの変更が多いほど常にリスクが下がると想定して、過度に積極的にローテーションを行っている。単純なターゲットではそれでもうまくいくことがある。しかし、より成熟したアンチボットスタックでは、絶え間ないIPの入れ替わり自体が独自のシグネチャを作り出す。特に、同じブラウザフィンガープリント、Cookieジャー、ユーザーフローが数リクエストごとに新しい家庭用IPから現れる場合はなおさらだ。

ここで、スティッキーセッションとローテーティングセッションを意図的に使い分ける必要がある。ログイン状態、複数ステップのナビゲーション、カート、検索の絞り込みなど、Cookieとレピュテーションが一定期間一致していることが期待されるパスでは、スティッキーセッションを使う。公開されている商品詳細ページの収集や、多数のロケーションにおける検索結果順位の確認など、各リクエストが独立している場合はローテーティングセッションを使う。

トレードオフは単純だ。スティッキーセッションは行動の一貫性を向上させるが、1つのセッションがフラグを立てられた場合の露出リスクを高める。高速なローテーションはリスクを分散するが、他のあらゆるシグナルが同一のままだと不自然に見えることがある。適切な選択は、サイトのアーキテクチャとその背後にあるアンチボットモデルに依存する。

セッションの長さをターゲットのワークフローに合わせる

良い原則は、タイマーだけではなく、ワークフローの境界でローテーションすることだ。ユーザーが離脱するまでに5〜10ページビューを妥当に完了するのであれば、その一連の流れの間は同じIPとCookieコンテキストを維持する。スクレイパーが無関係なURLに対して単発のリクエストを行っている場合は、セッションを短くする。

大量に運用しているチームは通常、トラフィックをセグメント化することでより良い結果を得ている。カテゴリー探索には1つのプロファイル、商品詳細抽出には別のプロファイル、価格の更新やSERPチェックにはさらに別のプロファイルを使う。これにより、パターン間の汚染が減り、ブロック率が変化した際のチューニングが容易になる。

プロキシの種類よりリクエストパターンの方が重要

レジデンシャルIPは即座に拒否される可能性を下げるが、悪いペーシングを正当化するものではない。ブロックへの最短経路は、同じホスト名、パスファミリー、またはアカウントコンテキストに対する予測可能な同時実行の急増だ。

秒間リクエスト数だけでなく、リクエスト密度という観点で考えよう。あるターゲットは、全体としては1分あたり数千リクエストを許容しても、1つのセッションから1つのエンドポイントへの、ほぼ同一な20件のリクエストのバーストにフラグを立てることがある。ページ、セッション、時間枠にわたって需要を分散させる。ジッターを導入する。機械的に生成されたように見えるきれいな間隔を送るのではなく、現実的な範囲内でリクエスト間の遅延を変化させる。

これは、プロキシ層から事実上無制限の同時実行能力が利用可能な場合、さらに重要になる。インフラの余力は有用だが、スクレイパーがアプリケーションレベルのスロットリングなしにそれを消費すると、単に規模を拡大してBANを加速させているだけだ。

ペーシングは固定のグローバル制限ではなく、ページの価値に従うべき

検索、ログイン、カートへの追加、在庫エンドポイントなどの価値の高いページは通常、より低い同時実行数とより長い遅延を必要とする。静的な商品ページは多くの場合、より高いスループットに耐えられる。アンチボットシステムがそれらのエンドポイントをより積極的に監視するため、API駆動のページはHTMLページよりも厳格なペーシングを必要とすることがある。

成熟した仕組みは適応型のスロットリングを使う。レスポンスタイムが上昇したり、キャプチャの頻度が増えたり、ソフトブロックページが現れたりした場合、スクレイパーはルート、地域、セッションタイプごとに自動的に速度を落とすべきだ。ハードコードされたレートは、市場や季節をまたいで生き残ることはほとんどない。

ヘッダー、Cookie、ブラウザフィンガープリントには内部的な一貫性が必要

よくある運用上の失敗は、レジデンシャルIPと低品質なリクエストプロファイルを組み合わせてしまうことだ。IPがシカゴの実際の消費者ネットワークに解決されても、リクエストヘッダー、タイムゾーン、言語設定、ブラウザフィンガープリントが不一致な環境を示唆している場合、検知スコアは上昇する。

一貫性は目新しさに勝る。現実的なクライアントプロファイルの小さなセットを構築し、それを正しく再利用する。ユーザーエージェント文字列を最新のブラウザバージョンに合わせておく。適切な場合はAccept-Languageをターゲットのロケールに一致させる。セッション内でCookieを保持する。ブラウザ自動化スタックを使用している場合は、一貫したタイムゾーン、画面サイズ、プラットフォームのシグネチャを維持する。

過度にランダム化しないこと。すべてのリクエストでランダムな値を使うと合成的に見える。実際のユーザーはセッション内では反復的だ。

ブラウザベースのスクレイピングにはより強固なフィンガープリント規律が必要

Playwright、Puppeteer、Seleniumでページをレンダリングしている場合、IPローテーションだけでは不十分だ。TLSフィンガープリント、WebGL、キャンバスの挙動、フォントセット、navigatorプロパティ、自動化の痕跡は、サイトがプロキシを気にする前にブロックを引き起こすことがある。ブラウザフィンガープリントはターゲットごとに強化し、監視し、テストするべきだ。

複数のターゲットをスクレイピングするチームにとっては、軽量なHTTP収集をブラウザが必要なフローから分離することが理にかなうことが多い。JavaScriptの実行やインタラクティブなステップが必要な場合にのみブラウザを使う。それによりコストが下がり、制御する必要のあるフィンガープリンティング表面の数が減る。

ジオターゲティングは精度を向上させるのと同じくらいブロックを減らすことができる

多くのチームは、ジオターゲティングをデータの精度という観点だけで考えている。しかし、それは信頼にも影響する。小売業者がテキサスの在庫をテキサスのユーザーに提供している場合、適切な都市や地域からリクエストを送ることで不一致シグナルが減る。これはローカライズされたSERP、広告検証、旅行料金、マーケットプレイスの在庫状況にも当てはまる。

国レベルのターゲティングは、幅広い調査には十分なことが多い。ターゲットが場所によって強く個人化を行っている場合、あるいは現地の在庫状況そのものがデータポイントである場合には、都市レベルのターゲティングが価値を持つようになる。ASNレベルのターゲティングも、サイトが特定の消費者ISPに対して異なる振る舞いをする場合に役立つことがある。

誤った位置情報を使用すると、結果セットが歪むだけではない。疑わしいトラフィックパターン向けに設計されたチャレンジフローに押し込まれる可能性がある。精度は重要だ。

リトライロジックは、優れたスクレイパーが悪化する場所だ

ブロックされたリクエストが常に失敗を意味するとは限らない。時にはそれはペーシングのシグナルであり、セッション品質の問題であり、一時的なチャレンジであることもある。重要なのは、システムがどう対応するかだ。

悪いリトライロジックは、同じヘッダー、同じフィンガープリント、同じルートパターン、時には同じ侵害されたセッションで、同じリクエストを即座に繰り返す。それは問題を悪化させる。より良いリトライロジックは、まず失敗を分類する。タイムアウト、403、キャプチャページ、不正な形式のレスポンスは、すべて同じ回復パスをトリガーすべきではない。

例えば、タイムアウトは同じセッション内での短いリトライを正当化するかもしれない。キャプチャやブロックページは通常、セッションの引退、クールダウン、場合によってはそのルートでの同時実行数の低下を必要とする。429の急激な増加は、ジョブ全体ではなく1つのエンドポイントだけが速度を落とす必要があることを示しているかもしれない。

HTTPステータスコードだけでなく、ソフトブロックにも注意する

最もコストのかかるデータ品質の失敗のいくつかは、ソフトブロックから生じる。空の結果ページ、切り詰められたリスト、古いキャッシュコンテンツ、強制リダイレクト、200ステータスで返されるチャレンジページなどだ。監視がステータスコードのみを追跡している場合、有用なデータを収集することなく何時間もスクレイピングを続けてしまうことがある。

これがレスポンス検証が重要な理由だ。期待されるページ要素、コンテンツ長のしきい値、構造化データの有無、ブロックに関連する既知のテキストパターンをチェックする。劣化を早く検知するほど、帯域幅と計算資源の無駄が少なくなる。

プロキシの品質は依然として重要だ

すべてのレジデンシャルトラフィックが同じように機能するわけではない。プールサイズ、ローテーション制御、地理的な深さ、セッションの安定性、ルーティングの品質は、すべてブロック率に影響する。大規模なネットワークは負荷を分散するためのより多くの余地を与えてくれるが、それはプラットフォームがスティッキー性、ターゲティング、同時実行のための実用的な制御を提供している場合に限られる。

エンタープライズ規模では、可観測性はIPプールそのものとほぼ同じくらい重要だ。ジョブ、地域、成功率、失敗タイプ別に使用状況を確認する必要がある。そうでなければ、盲目的にチューニングしていることになる。リアルタイムの使用状況データときめ細かいターゲティング制御を提供するプロバイダーは、問題がターゲットにあるのか、スクレイパーにあるのか、セッションポリシーにあるのか、地理的な組み合わせにあるのかを切り分けやすくしてくれる。

これはまた、コスト効率が運用上関連性を持つようになる場面でもある。プロバイダーの価格設定によりすべてのリクエストを過剰に最適化せざるを得ない場合、チームはテスト不足に陥り、より良いセッション戦略を見逃すことが多い。インフラは実験を支援すべきであり、それを罰するべきではない。これが、大規模な事業者がレジデンシャルカバレッジ、セッション制御、プレミアムベンダーのマージンを支払うことなく同時ジョブを実行する余地を必要とする際にShifterのようなプラットフォームを使う理由の1つだ。

ブロック率が最も低いチームは、スクレイピングを分散システムエンジニアリングのように扱っている

彼らはレジデンシャルプロキシが機能するかどうかを尋ねない。彼らは、このターゲットにどのセッションモデルが適合するか、どのルートがブラウザ実行を必要とするか、地域ごとにどのような失敗モードが現れているか、人間の介入なしにスクレイパーがどれだけ速く適応できるかを問う。

その考え方が結果を変える。ヘッダーが一貫しており、セッションが実際のワークフローに対応しており、ペーシングがターゲットのフィードバックに適応し、リトライロジックがノイズと検知を区別できるとき、レジデンシャルプロキシは鈍器であることをやめ、インフラのように機能し始める。

ブロックを減らそうとしているなら、まずIPを追加購入する前に振る舞いを監査することから始めよう。ほとんどのスクレイピングシステムは、供給不足ではなく、一貫性の欠如によって失敗する。

始める準備はできていますか?

Shifterのレジデンシャルプロキシをお試しください。IP 205M+件、195+カ国、$0.75/GBから。

始める