【要約】クラウドVMからのスクレイピングがAkamaiに403される話 — UA偽装もRefererも効かない理由 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がスクレイピング処理をクラウドVMへ移設した際、特定のサイトから403エラーを受ける問題に直面した。ローカル環境では動作していたコードが、クラウド環境では拒否される。
- ・対象:Akamai保護下のメガバンク公開ページ。
- ・試行:UA偽装、Referer付与、Playwrightによる自動化回避。
- ・結果:すべてのヘッダ操作が失敗。
- ・原因:IP/ASNのレピュテーションが判定の最前段にあり、データセンターIPが即座に拒否されている。
// Approach
開発者はリクエストヘッダの調整ではなく、出口IPを住宅回線に変更するアプローチを採用した。判定の最前段であるIPレピュテーションを回避するため、以下の手法を検討した。
- ・Tailscaleによる中継:自宅の小型デバイスをプロキシとし、クラウドVMからVPN経由で通信する。
- ・商用住宅プロキシ:有料サービスを利用して住宅IPを取得する。
- ・ローカル実行:対象サイトのみ自宅PCで取得する。
// Result
出口IPを住宅回線に切り替えることで、既存のコードを維持したまま200 OKでの取得に成功した。
- ・Tailscaleの活用:自宅の余剰デバイスを中継機として利用し、追加コストなしで実現。
- ・構成の最適化:対象サイトの通信のみプロキシを通し、他の通信は直結させることで帯域を節約。
- ・検証結果:IPの出自さえ正しければ、UAやヘッダの微調整は不要であることが実証された。
Senior Engineer Insight
> 多くのエンジニアはL7(アプリケーション層)の偽装に固執する。しかし、高度なWAFはIPレピュテーションで判定を行う。この「判定の順序」を理解していないと、無益な実装に時間を浪費する。Tailscaleを用いた中継構成は、インフラの柔軟性と正当性を両立させる極めて実戦的な解だ。