Neden Tespit Ne Olur?
Web scraping algılaması çok katmanlı bir süreçtir. Anti-bot sistemleri tek bir sinyale güvenmez - IP itibarı, HTTP başlıkları birleştirir, TLS parmak izi, tarayıcı parmak izleriRisk puanını hesaplamak için davranışsal analiz. Bu puan bir eşiği aştığında, bir CAPTCHA'ya veya yanıltıcı verilere hizmet ettiniz.
Bu kılavuz, tüm katmanlarda algılamayı azaltmak için kapsamlı bir yaklaşım sağlar. Bu sistemlerin nasıl çalıştığına dair bir bakış için, piller makalemizi inceler Anti-bot sistemlerinin nasıl algılandığını nasıl algılar.
Katman 1: IP Reputasyon ve Proxy Selection
IP adresiniziz bir sunucunun gördüğü ilk şeydir. Anti-bot sistemleri, IP adreslerini tip, tarih ve davranışlarla alan veritabanıları korur.
Proxy Type Selection
| Proxy Type | Tespit Riski | En iyisi için |
|---|---|---|
| Konut Konut Konut Konut | Low Low Low Low | Çoğu hurda görevi, korunan siteleri |
| ISS (Stat Konutu) | Low-Medium | Uzun seanslar, hesaplar |
| Datacenter | Yüksek Yüksek Yüksek Yüksek Yüksek | Korumasız siteler, yüksek hacimli görevler |
| Mobile Mobile Mobile | Çok düşük | En yüksek koruma siteleri, sosyal medya |
Çoğu kazı projesi için, ProxyHat'ın konut temsilcileri Düşük algılama riskinin ve maliyet verimliliğinin en iyi dengesi sunar. Detaylı bilgimizi gör Karşılaştırma türü karşılaştırma türü Rehberlik için.
IP Rotation Strategy
# Python: Rotating proxy per request using ProxyHat
import requests
proxy_url = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
proxies = {
"http": proxy_url,
"https": proxy_url
}
# Each request through the gateway gets a different IP
for url in urls_to_scrape:
response = requests.get(url, proxies=proxies, timeout=30)
process(response)
- İstek başına Rotate Liste sayfaları ve arama sonuçları için.
- Dikkatli seanslar Çok sayfa akışları (pagination, login dizileri).
- Geo-target your IPs Sitenin beklenen seyirciyi eşleştirmek için ProxyHat'ın konumu.
Katman 2: HTTP Headers
Incorrect veya eksik HTTP başlıkları, anti-bot sistemlerinin tespit edilmesi için en kolay sinyallerin biridir. Gerçek bir tarayıcı belirli bir sırayla 15-20 başlık gönderir; varsayılan bir Python senaryosu 3-4 gönderir.
Essential Headers
# Python: Realistic header set
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
"Accept-Encoding": "gzip, deflate, br, zstd",
"Cache-Control": "max-age=0",
"Sec-Ch-Ua": '"Chromium";v="131", "Not_A Brand";v="24"',
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": '"Windows"',
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"Connection": "keep-alive"
}
response = requests.get(url, headers=headers, proxies=proxies)
Header Consistency Kuralları
- Match Sec-Ch-Ua with User-Agent: Chrome 131'i iddia ederseniz, your
Sec-Ch-UaReferans sürüm 131 olmalıdır. - Tüm Sec-Fetch başlıklarını ekleyin: Modern Chrome bunları her navigasyonda gönderir. Onları kaçırmak güçlü bir bot sinyalidir.
- Proxy geo'yu eşleştirmek için kabul et: A US with proxy
Accept-Language: ja-JPşüphelidir. - Başlık: Bazı anti-bot sistemleri üst sırayı kontrol eder. Ekleksiyon siparişini koruyan kütüphaneleri kullanın.
Katman 3: TLS ve HTTP/2 Parmak
HTTP müşteri kütüphaneniz eşsiz bir kütüphane üretir TLS parmak izi Bu anti-bot sistemleri, iddia edilen kullanıcı tarafından kontrol edilir. Bir Python TLS parmak izi ile bir Chrome kullanıcısı hemen bayraklı.
Language
| Dil Dili | Temsil Kütüphanesi | Tespit Riski | Browser-Grade Alternatif |
|---|---|---|---|
| Python Python | İstek/urllib3 | Çok yüksek | curl cffi with im personate |
| Hayır | axios /got | Yüksek Yüksek Yüksek Yüksek Yüksek | got-scraping |
| Go Go Go Go | net/https | Çok yüksek | uTLS + özel ulaşım |
# Python: Browser-grade TLS with curl_cffi
from curl_cffi import requests as curl_requests
response = curl_requests.get(
"https://example.com",
impersonate="chrome",
proxies={
"http": "http://USERNAME:PASSWORD@gate.proxyhat.com:8080",
"https": "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
}
)
Katman 4: Browser Parmak
Başsız bir tarayıcı kullanıyorsanız, anti-bot JavaScript Pros your Tarayıcı parmak izi - Blood, WebGL, AudioContext, navigator özellikleri. Anahtar prensibi içsel tutarlılıktır:
- Tüm parmak izi sinyalleri birbirleriyle aynı fikirde olmalıdır
- Parmaklar kullanıcı-agent iddialarınızla eşleşmelidir
- Parmaklar değişkenleri döndüğünüzde değişmeli
Stealth Build
// Node.js: Puppeteer with stealth and proxy
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({
headless: 'new',
args: [
'--proxy-server=http://gate.proxyhat.com:8080',
'--disable-blink-features=AutomationControlled',
'--window-size=1920,1080'
]
});
const page = await browser.newPage();
await page.authenticate({
username: 'USERNAME',
password: 'PASSWORD'
});
await page.setViewport({ width: 1920, height: 1080 });
Katman 5: Davranışlı Desenler
Mükemmel teknik mimikry ile bile, bot benzeri davranış kalıpları algılamayı tetikleyecek. Anti-bot sistemleri zamanlama, navigasyon kalıpları ve etkileşim imzalarını analiz eder.
İste Timing
- rastgele gecikmeler ekleyin: İnsanlar tam aralıklarda talep yapmazlar. İstekler arasında rastgele gecikmenin 1-5 saniyesini ekleyin.
- Sayfa türünde Vary gecikmeleri: İçerik sayfaları liste sayfalarından daha uzun "okuma" duraklarını hak ediyor.
- Patlama desenlerinden kaçının: Daha sonra 50 hızlı istek yapmayın. Dağcılık, doğal değişkenlerle bile talep eder.
# Python: Natural request timing
import time
import random
def scrape_with_natural_timing(urls, proxies):
for url in urls:
response = requests.get(url, proxies=proxies, headers=headers)
process(response)
# Random delay: 1-4 seconds with normal distribution
delay = max(0.5, random.gauss(2.5, 0.8))
time.sleep(delay)
Navigation Desenleri
- Doğal yolları takip edin: İlk önce ana sayfayı ziyaret edin, sonra ayrıntılı sayfalar - doğrudan derin URL'lere atlamak değil.
- Doğru Refererer Başlıkları Oluşturun: Her sayfa önceki sayfayı referansçı olarak göndermelidir.
- Yavaş yönlendirmeler: HTTP yönlendirmelerini doğal olarak orijinal URL'yi yeniden denemek yerine takip edin.
Oturum Yönetimi
- Kurabiye kavanozlarını koruyun: Bir oturumda kurabiye kabul edin ve geri dönün - tüm kurabiyeleri silmek bir bot sinyalidir.
- Limit seans uzunluğu: 50-100 isteğinden sonra, taze bir IP ve kurabiye ile yeni bir seans başlayın.
- Saygı oranı sınırları: 429 yanıt alırsanız, hemen yeniden denemeden daha üst üste geri dönün.
Katman 6: Yanıt Geçerliliği
Tespit her zaman bir blokta sonuçlanmaz. Siteler farklı içeriğe hizmet edebilir, yanıltıcı verileri enjekte edebilir veya yumuşak bloklar döndürür. Her zaman cevaplarınızı doğrulayın:
- Check durum kodları: 200 her zaman başarı anlamına gelmez - bazı siteler CAPTCHA sayfaları veya boş içerik ile 200 geri döner.
- Geçerli içerik yapısı: Cevabın beklenen elementler (ürün fiyatları, makale metni vs.) içerdiğinden emin olun.
- Balpots için monitör: Otomatik taramacılar yakalamak için tasarlanmış gizli bağlantılar veya form alanları.
- Başarı oranları: Başarı oranı %90'ın altına düşerse, bir şey değişti ve soruşturmaya ihtiyaç duyuyor.
Kapsamlı Anti-Detection Checklist
| Katman | Eylem | Öncelik |
|---|---|---|
| IP IP IP IP | geo-targeting ile konut referansları kullanın | Eleştirel eleştirel |
| IP IP IP IP | Talep veya oturum açma IP'ler | Eleştirel eleştirel |
| Headers | Tamam, gerçekçi başlık setleri | Eleştirel eleştirel |
| Headers | Match Kabul-Elimi proxy konumu için | Yüksek Yüksek Yüksek Yüksek Yüksek |
| TLS | Tarayıcı-grad TLS kütüphanesi | Eleştirel eleştirel |
| TLS | Bağlantı TLS parmak izi tarayıcıya | Eleştirel eleştirel |
| Browser Browser | Başsız tarayıcılar için Stealth eklentileri kullanın | Yüksek Yüksek Yüksek Yüksek Yüksek |
| Browser Browser | Sürekli parmak izi profillerini koruyun | Yüksek Yüksek Yüksek Yüksek Yüksek |
| Davranış Davranış | İstekler arasında rastgele gecikmeler ekleyin | Yüksek Yüksek Yüksek Yüksek Yüksek |
| Davranış Davranış | Doğal navigasyon yollarını takip et | Medium Medium Medium Medium Medium |
| Davranış Davranış | seanslar içinde kurabiyeleri koruyun | Medium Medium Medium Medium Medium |
| Geçerlilik | Yanıt içeriğini kontrol edin, sadece durum kodları değil | Yüksek Yüksek Yüksek Yüksek Yüksek |
Örnek: Full Anti-Detection Boater
# Python: Complete anti-detection scraper setup
from curl_cffi import requests as curl_requests
import time
import random
class StealthScraper:
def __init__(self, proxy_user, proxy_pass):
self.proxy = f"http://{proxy_user}:{proxy_pass}@gate.proxyhat.com:8080"
self.session = curl_requests.Session(impersonate="chrome")
self.session.proxies = {
"http": self.proxy,
"https": self.proxy
}
self.request_count = 0
def get(self, url, referer=None):
headers = {}
if referer:
headers["Referer"] = referer
response = self.session.get(url, headers=headers, timeout=30)
self.request_count += 1
# Rotate session every 50-80 requests
if self.request_count >= random.randint(50, 80):
self._rotate_session()
# Natural delay
time.sleep(max(0.5, random.gauss(2.0, 0.6)))
return response
def _rotate_session(self):
self.session = curl_requests.Session(impersonate="chrome")
self.session.proxies = {
"http": self.proxy,
"https": self.proxy
}
self.request_count = 0
# Usage
scraper = StealthScraper("USERNAME", "PASSWORD")
home = scraper.get("https://example.com")
listing = scraper.get("https://example.com/products", referer="https://example.com")
detail = scraper.get("https://example.com/products/123", referer="https://example.com/products")
When to Escalate Your Approach
En basit yaklaşımla başlayın ve sadece gerektiğinde yükselir:
- Seviye 1 – HTTP istemcisi + Başlıklar +: Çoğu site için çalışır. Use Use Use Use Use Use
curl_cffiveyagot-scrapingile birlikte ProxyHat proxy. - 2. Seviye - Tarayıcı-grad TLS ekleyin: Site JA3/JA4 parmak izlerini kontrol ettiğinde gerekli.
- 3. Seviye - Headless browser + Playth: JavaScript-rendered içerik ve sofistike anti-bot sistemleri için gerekli.
- Seviye 4 - davranışsal mimikry ile tam tarayıcı otomasyonu: En korunan siteler için (Cloudflare Enterprise, PerimeterX vs.).
Belirli dillerde uygulama modelleri için, rehberlerimize bakınız: Python Python, HayırVe Go Go Go Go.
Etik Kılavuzlar
Anti-deteksiyon teknikleri araçlardır - etik kullanımları bağlama bağlıdır. Her zaman:
- Saygı robotlar.txt ve hizmet koşulları
- Sadece halka açık mevcut veriler
- Limit talep oranları sunucu etkisinden kaçınmak için
- Veri koruma düzenlemeleri ile (GDPR, CCPA)
- Use Use Use Use Use Use Etik kazı uygulamaları Senin temelin
Anti-deteksiyon amacı meşru güvenliği atlamak değildir. Otomatik erişiminizin halka açık veriye erişiminizin kötü bir şekilde bayraklandırılmasını sağlamaktır.






