7 ポイント 投稿者 GN⁺ 2024-04-28 | まだコメントはありません。 | WhatsAppで共有

Here is a summary of the key points from the article in Korean, formatted as a markdown bullet list:

大規模スクレイピングインフラを構築する

  • AWS LambdaでHeadless Chromeを実行し、Google SERPを週あたり数百万件スクレイピングする
    • Lambda関数を3回呼び出すと新しいpublic IPを取得できる
    • 1000個のLambda関数を同時に呼び出すと約250個のpublic IPを使用できる
    • 16リージョンを使えば約4000個のpublic IPアドレスを使用可能
  • ただしこの方法はGoogle、Bing、Amazonのようなサイトでのみ動作する。DataDome、Akamai、Impervaなどのアンチボットソリューションを使うサイトでは動作しない
  • アンチボットソリューションは、ブラウザフィンガープリンティング、嘘検知、人間と異なる挙動の検出など、さまざまな技術を使う
  • ボット検知を避けにくい理由は、ほとんどがDockerやKubernetesでクラウド上で動かしているため

検知されにくく拡張可能なスクレイピングインフラの提案

  • 5つのメーカーから500台の安価なAndroid端末を購入
  • 安価なデータプランを利用し、DeviceFarmer/stfで端末を制御
  • ロンドン、パリ、ボストン、フランクフルト、LAなど5つの主要都市にそれぞれ100台ずつ配置
  • 軽量なAndroid Goをインストールし、5分ごとに機内モードをオフ・オンしてIPアドレスを変更
  • 4G/5G/LTEのモバイルIPはブロックできない。多くのユーザーが共有しているため、InstagramでもLAの20万人をブロックできない
  • 端末の向きや動きなどのイベントをカーネルレベルで操作する必要がある

改善案: Androidエミュレーション

  • Android-x86 on VirtualBox、Bluestacks、Android Studioなどのエミュレーターを使用
  • ただしエミュレーション検知技術は多数ある(ブラウザベースのred pill、adbポートスキャン、広告ID検知、ソーシャルログイン検知など)
  • 4Gドングルをサーバーに接続し、Androidエミュレーターで直接使用
  • 5つの主要都市に、それぞれ50個のドングルを接続した強力なスクレイピングサーバーを1台ずつ配置
  • 各サーバーで50〜100個のAndroidエミュレーターを実行
  • 単純なコマンド制御サーバーで5つのスクレイピングステーションを調整

GN⁺の意見

  • 実機を使う方法は管理コストが高く、スケーラビリティにも限界があるように見える。エミュレーターの利用が現実的な代替案になりそう
  • ただしエミュレーター検知技術も進化し続けているため、単にエミュレーターを使うだけで安全とは言えない。継続的なアップデートと改善が必要になるだろう
  • 4G/5GモバイルIPを使うのは良いアイデアだが、通信事業者が特定端末をブロックしたり、料金プランを調整したりする可能性も排除できない
  • データセンターIPの利用を避けることに加えて、人間に近い行動パターンを作ることがボット検知回避に役立ちそう。自動化による大規模収集ではなく、限定されたConcurrencyでゆっくり収集する方式も検討に値する
  • MultiloginやGoLoginのような商用アンチディテクションブラウザーの活用も検討に値する。ただしライセンス費用の問題がある

まだコメントはありません。

まだコメントはありません。