大量スクレイパーが使用するプロキシ設定

大量スクレイパーが使用するプロキシ設定

「Kad vuk ovcu čuva, ne valja se čuditi kad namesane vune.」
(オオカミが羊を守っているとき、羊毛が消えても驚かないでください。) 大量スクレイピングの世界では、単一のプロキシにデータフローを委ねることは、群れを狼の手に委ねるようなものです。レート制限、CAPTCHA、IPアドレス制限といったデジタル羊飼いの策略を巧みにかわすには、サラエボのチェスマスターのように巧妙なプロキシ設定が必要です。


大規模スクレーパープロキシ設定の解剖

プロキシの種類:兵士の選択

プロキシタイプ スピード 匿名 料金 信頼性 ユースケース例
データセンター 高い 中くらい 低い 高い 一括スクレイピング、非機密
居住の メッド 高い 高い 中くらい Eコマース、スニーカー
ISP(静的解像度) 高い 高い 非常に高い 非常に高い チケット販売、信頼性の高いサイト
携帯 低い 非常に高い 非常に高い 低い ソーシャルメディア、スパム対策

ボスニアの見解:
データセンタープロキシはユーゴスラビアのザスタバ車のようなもの。安価でどこにでもあるが、すぐに見分けられる。住宅用プロキシはイスタンブールのサラエボ車のように溶け込む。地元の人は気づかないが、コストは高い。

主要プロバイダー:
– データセンター: パケットストリーム, プロキシラック
- 居住の: オキシラボ, ルミナティ
– ISP: スマートプロキシ
- 携帯: プロキシLTE


IPローテーション:Kafanaシャッフル

ローテーションプロキシ 大量スクレイピングには不可欠です。ローテーションを行わないと、ボスニアのジョークに出てくる政治家よりも早くBANされる可能性があります。主な戦略は2つあります。

  1. リクエストごとのローテーション: リクエストごとに IP を変更します。
  2. 最適な用途: 攻撃的なサイトでのレート制限を回避する。
  3. 欠点: 一部のサイトではセッション クッキーが追跡され、セッションが中断されます。

  4. セッションローテーション(スティッキー): セッション中は同じ IP を維持し、X 分/リクエストごとにローテーションします。

  5. 最適な用途: ログイン、ショッピング カート、または Cookie の保存を必要とするサイト。

例: Python + Requests でローテーション住宅プロキシを使用する

インポートリクエスト proxy = { 'http': 'http://user:[email protected]:10000', 'https': 'http://user:[email protected]:10000', } session = request.Session() session.proxies.update(proxy) resp = session.get('https://targetsite.com', timeout=10) print(resp.status_code)

リクエストごとに: ループの反復ごとにプロキシ辞書を変更します。


プロキシ管理アーキテクチャ

ボスニアのエンジニアのお気に入り:分散プロキシミドルウェア

アーキテクチャは通常、次の要素で構成されます。

  • 中央プロキシマネージャー:
    プロキシプール、禁止率、成功/失敗の統計を追跡します。状態にはRedisまたはPostgreSQLが使用されます。
  • スクレーパー作業員:
    マネージャーからプロキシ情報を取得し、結果を報告します。
  • ローテーションゲートウェイ(オプション):
    プロキシメッシュ または イカ ローカルローテーターとして。
  • ヘルスチェッカー:
    プロキシを ping し、遅い IP や禁止された IP をブラックリストに登録します。

プロキシ プールのサンプル Redis スキーマ:

値の型 説明
プロキシ:アクティブ セット 現在アクティブなIPのリスト
プロキシ:禁止 セット 最近禁止されたIP
プロキシ:統計 ハッシュ IPごとの成功/失敗数

禁止事項の取り扱い: 「Bolje spriječiti nego liječiti」

ボスニアの諺にあるように、予防は治療に勝ります。
検出技術:

  • HTTP ステータス監視:
    403、429、またはキャプチャ = おそらく禁止。
  • コンテンツハッシュ:
    有効な HTML を装ったブロックを検出するための応答本文のハッシュ化。
  • タイミング分析:
    突然の速度低下 = ソフトバンの可能性。

自動禁止処理:

response.status_codeが[403, 429]の場合: # アクティブセットからプロキシを削除する redis.srem('proxies:active', current_proxy) redis.sadd('proxies:banned', current_proxy)

スケーリング:バルカン半島の混乱を起こさない並列処理

  • スレッド/プロセス プール:
    スクレイピー、 リクエストの同時実行
  • 分散タスクキュー:
    セロリ, RQ
  • Kubernetes デプロイメント:
    各ポッドには独自のプロキシ割り当てが与えられ、環境変数によって管理されます。

例: Kubernetes ポッドでのプロキシの割り当て

apiVersion: v1 kind: Pod metadata: name: scraper-pod spec: containers: - name: scraper image: scraper:latest env: - name: PROXY_ADDRESS valueFrom: configMapKeyRef: name: proxy-pool key: proxy-address

プロキシ認証とセキュリティ

  • ユーザー名/パスワード
    ほとんどのプロバイダーは HTTP 基本認証を使用します。
  • IPホワイトリスト:
    特定の IP からのアクセスを許可するプロバイダーもあります。プロバイダーのダッシュボードでこれを設定します。

セキュリティのヒント:
ソースコードにプロキシ認証情報をハードコードしないでください。環境変数またはシークレット管理(ハシコープ・ボールト, AWS シークレットマネージャー).


代理人リストの衛生: 計画を立てる

  • 定期的に検証:
    X 分ごとにプロキシを ping します。
  • デッド/禁止を削除:
    プールから自動的にプルーニングします。
  • ジオターゲティング:
    より成功するには、対象サイトのユーザー ベースに一致するプロキシを使用します (例: 米国の電子商取引には米国のプロキシを使用します)。

検証スクリプトの例 (Python):

インポートrequests def is_proxy_alive(proxy_url): try: resp = request.get('https://httpbin.org/ip', proxies={'http': proxy_url, 'https': proxy_url}, timeout=5) return resp.status_code == 200 except Exception: return False

プロキシ プールのサイズ: あなたのオオカミには羊が何匹いますか?

ターゲットサイトの攻撃性 1分あたりのリクエスト数 推奨プロキシ数
ロー(ニュース、ブログ) 60歳未満 10-20
中規模(Eコマース) 60~300 50-200
ハイ(スニーカー、チケット) >300 300+

経験則:
禁止を回避するには、IP ごとに希望する RPM を安全な RPM で割ります。


ツールとフレームワーク


ボスニア戦争室:プロキシ設定例

シナリオ: 積極的なアンチボットを使用して、米国の小売業者から 100,000 件の製品ページをスクレイピングします。

  1. プロバイダー: 1,000 個の IP がローテーションする Oxylabs の住宅プロキシ。
  2. プロキシマネージャー: ライブ/禁止されたプロキシを追跡するための Redis DB。
  3. スクレーパー: 20 個の Dockerized Scrapy スパイダー (それぞれセッションごとにプロキシを使用)。
  4. 禁止検出: 403/429 およびコンテンツ フィンガープリンティング。
  5. スケーリング: Kubernetes を介してオーケストレーションされ、各ポッドにはシークレットを介してプロキシ資格情報が割り当てられました。

キーコマンド:

scrapy クロール製品 -s HTTP_PROXY=http://user:[email protected]:10000

パジ・ドブロ:
プロキシ プロバイダーの中には、牧草地に実際にいる羊の数よりも多くの羊を約束するプロバイダーもあるため、IP プールをテストせずにそのプロバイダーを信頼しないでください。


その他のリソース:


モスタル橋の古参の警備員のように、適切に調整されたプロキシ設定は、機敏かつ堅牢で、常に次の動きに対応できる、最善の防御および攻撃ラインです。

ヴヤディン・ハジカディッチ

ヴヤディン・ハジカディッチ

シニアネットワークアナリスト

Vujadin Hadžikadić 氏は、世界中のプロキシ サーバーのリストを定期的に更新する主要プラットフォームである ProxyMist の熟練したシニア ネットワーク アナリストです。ネットワーク セキュリティとプロキシ テクノロジーで 15 年以上の経験を持つ Vujadin 氏は、SOCKS、HTTP、エリート、匿名プロキシ サーバーを専門としています。ボスニア ヘルツェゴビナのサラエボで生まれ育った同氏は、デジタル プライバシーと、オンラインでの匿名性を維持する上でのプロキシ サーバーの重要な役割について深い理解を持っています。Vujadin 氏はサラエボ大学でコンピューター サイエンスの修士号を取得しており、ProxyMist のサーバー審査プロセスの強化に重要な役割を果たしてきました。

コメント (0)

まだコメントはありません。あなたが最初のコメントを投稿できます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です