プロキシリクエストを人間らしく見せる方法
ステップの移り変わる砂丘では、狩人の馬は足跡を残さない。上空の鷲に気づかれないように。同じように、私たちのデジタルの足跡も、サーバーの監視の目には触れず、風景に溶け込まなければならない。テクノロジーと古の知恵が融合する、真に人間的なプロキシリクエストの作成術を、共に探求していきましょう。
検出を理解する:用心深い監視者
検出方法 | 何を探すのか | 回避方法 |
---|---|---|
ユーザーエージェント分析 | デフォルトまたはまれなブラウザ | 一般的なユーザーエージェントを使用する |
ヘッダーの一貫性 | ヘッダーが欠落しているか不適切 | ブラウザのヘッダー全体を模倣する |
タイミングと行動 | 急速で規則的なパターン | タイミングをランダム化する |
クッキーの取り扱い | クッキーがない/正しくない | ブラウザとしてCookieを処理する |
JavaScript実行 | JSや奇妙な応答はありません | ヘッドレスブラウザを使用する |
IPレピュテーション | 既知のプロキシまたはデータセンターのIP | プロキシをローテーションする (ProxyRoller) |
1. 賢くプロキシをローテーションする
一度旋回する鷲は予測可能な獲物です。同様に、静的なプロキシは簡単にマークされます。多様で常に変化するプロキシのプールを活用しましょう。
リソース: ProxyRoller – 無料プロキシリスト
リクエストを使用した Python の例:
import requests
from proxyroller import ProxyRollerClient
proxies = ProxyRollerClient().get_proxies(limit=10, anonymity='elite') # Get fresh proxies
for proxy in proxies:
try:
resp = requests.get('https://httpbin.org/ip', proxies={'http': f"http://{proxy}", 'https': f"http://{proxy}"}, timeout=5)
print(resp.json())
except Exception:
continue
2. 実際のユーザーヘッダーをエミュレートする: ノマドの特徴
それぞれの部族は独自の模様を身にまとっています。ブラウザは豊富なHTTPヘッダーを送信します。User-Agentだけでなく、これらもコピーしましょう。
ヘッダ | サンプル値 |
---|---|
ユーザーエージェント | Mozilla/5.0 (Windows NT 10.0; Win64; x64)... |
受け入れる | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
受け入れ言語 | en-US,en;q=0.9 |
Accept-Encoding | gzip, deflate, br |
繋がり | keep-alive |
リファラー | 前のページのURL |
安全でないアップグレード要求 | 1 |
Pythonの例:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Referer": "https://google.com",
"Upgrade-Insecure-Requests": "1"
}
resp = requests.get("https://example.com", headers=headers)
リソース: 一般的なHTTPヘッダーのリスト
3. クッキーの扱い方をマスターする:焚き火を囲んでパンをシェアする
サーバーは訪問者が宴会の内容を覚えていることを期待しています。ブラウザのようにCookieを扱い、リクエスト間で保存・再生します。
Python と requests.Session():
session = requests.Session()
response = session.get('https://example.com')
# Cookies are now stored and sent automatically
response2 = session.get('https://example.com/profile')
JavaScript を多用するサイトの場合: ヘッドレスブラウザを使用する 劇作家 または 操り人形師.
4. 人間のタイミングとナビゲーションを模倣する:蹄のリズム
カザフスタンの騎手は、どの砂丘でも同じペースで走るわけではありません。人間の行動は予測不可能ですから、あなたのリクエストも予測不可能であるべきです。
- 遅延をランダム化: リクエスト間にランダムなスリープ間隔を挿入します。
- クリックパスをエミュレートする: 人間と同じように、論理的な順序でページにアクセスします。
- バーストを避ける: 1 秒間に数十件のリクエストを送信しないでください。
例:
import time, random
for url in url_list:
resp = session.get(url)
time.sleep(random.uniform(2, 7)) # Sleep between 2 and 7 seconds
5. JavaScriptを実行する: The Living Fire
多くのサイトではボットのテストにJavaScriptを使用しています。ヘッドレスブラウザはこのギャップを埋めることができます。
リソース: Playwright Python ドキュメント
例:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto("https://example.com")
page.screenshot(path="example.png")
browser.close()
6. CAPTCHAとJavaScriptチャレンジを処理する
時々、CAPTCHAによってパスがブロックされることがあります。CAPTCHAに遭遇した場合は、ツールやサービスを利用してCAPTCHAを解読するか、別のプロキシにスキップしてください。
注記: CAPTCHA 解決の自動化は複雑でコストがかかる可能性があるため、検出を回避することが望ましいです。
7. 土地を尊重する:丁寧な歩き方
- robots.txtに従う: 単なる伝統ではなく、訪問者とホストの間の契約です。 robots.txtテスター
- 制限レート: サーバーに過負荷をかけないように、リクエストを時間をかけて分散させます。
クイックリファレンス表: 人間によるリクエストとボットによるリクエスト
側面 | 典型的なボット | 人間のようなアプローチ |
---|---|---|
IPアドレス | 静的、データセンター | 回転、多様(ProxyRoller) |
ユーザーエージェント | スクリプトのデフォルト | リアルブラウザUA |
ヘッダー | 最小限、一貫性がない | 完全なブラウザマッチング |
タイミング | 速くて、規則的 | ランダム化、可変 |
ナビゲーションパス | 直接的、反復的 | 論理的、多様 |
クッキー | 無視またはリセット | 保存、再生 |
JS実行 | なしまたは一部 | フル(ヘッドレスブラウザ) |
8. ツールとライブラリ
目的 | 図書館/サービス | リンク |
---|---|---|
プロキシプール | プロキシローラー | https://proxyroller.com/ |
HTTPリクエスト | リクエスト、httpx (Python) | https://docs.python-requests.org/ |
ブラウザエミュレーション | 劇作家、人形遣い、セレン | https://playwright.dev/ |
ヘッダー生成 | fake_useragent (Python) | https://github.com/hellysmile/fake-useragent |
CAPTCHAの解決 | 2キャプチャ、アンチキャプチャ | https://2captcha.com/, https://anti-captcha.com/ |
吟遊詩人が目に見えない旅を歌うように、あなたの願いも伝統と現代の鋭い技術によって導かれ、ウェブを影のように駆け抜けなければなりません。ProxyRollerが馬を用意します。あとはあなたの手に委ねられています。
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!