Aviasales, Booking, Skyscanner gibi seyahat agregatörleri, otomatik veri toplama işlemlerine karşı aktif olarak korunmaktadır — IP'leri 10-20 istektan sonra engeller, CAPTCHA gösterir ve botlar için fiyatları çarpıtır. Eğer kendi hizmetiniz, ortaklık programınız veya piyasa analizi için uçak bileti veya otel fiyatlarını izliyorsanız, doğru şekilde ayarlanmamış proxyler olmadan birkaç dakika içinde parser'ınızın banlanacağını göreceksiniz.
Bu rehberde, seyahat sitelerinin istikrarlı bir şekilde parse edilmesi için hangi proxylerin gerektiğini, IP rotasyonunu nasıl ayarlayacağınızı, Cloudflare ve Akamai gibi anti-bot sistemlerini nasıl aşacağınızı ve proxy kullanırken engellere neden olan hataları inceleyeceğiz.
Neden seyahat agregatörleri parse etmeyi engelliyor ve bunu nasıl yapıyorlar
Seyahat agregatörleri, parse işlemlerinden gerçek kayıplar yaşamaktadır: API'lerine yapılan her istek maliyetlidir (veri erişimi için havayollarına ve otellere ödeme yaparlar) ve rakipler toplanan fiyatları müşteri çekmek için kullanmaktadır. Bu nedenle Aviasales, Booking, Skyscanner, Kayak, anti-bot korumasına milyonlarca yatırım yapmaktadır.
Parse tespitinin ana yöntemleri
1. Bir IP'den gelen isteklerin sıklığının analizi. Normal bir kullanıcı oturum başına 3-5 arama isteği yapar, parser ise dakikada yüzlerce istek yapar. Eğer IP'niz dakikada 15-20'den fazla istek gönderiyorsa, sistem bunu şüpheli olarak işaretler. 50-100 isteğin ardından — 24 saat veya kalıcı olarak engellenir.
2. Tarayıcı parmak izi alma. Seyahat siteleri, ekran çözünürlüğü, saat dilimi, yüklü fontlar, WebGL parmak izi, canvas parmak izi, ses bağlamı gibi onlarca parametre toplar. Bu parametreler, IP'nin beyan edilen coğrafi konumuyla (örneğin, Moskova'dan gelen bir IP ve UTC+8 saat dilimi) uyuşmuyorsa — bu bir proxy veya VPN belirtisidir.
3. IP itibarının kontrolü. Siteler, bilinen proxy sağlayıcıları, veri merkezleri, VPN sunucularının veritabanlarını kullanır. Eğer IP'niz bu tür veritabanlarında (örneğin, MaxMind GeoIP2, IPQualityScore, SEON) yer alıyorsa, istekler engellenir veya CAPTCHA gösterilir. Booking ve Skyscanner, Amazon AWS, Google Cloud, DigitalOcean'dan gelen IP'lere özellikle serttir.
4. Davranış analizi. Anti-bot sistemleri, fare hareketlerini, kaydırma hızını, tıklamalar arasındaki duraklamaları izler. Selenium ve Puppeteer, ek yamanın olmaması durumunda iz bırakır: navigator.webdriver özelliği, eklentilerin olmaması, alışılmadık pencere boyutları. Proxy ile bile böyle bir trafik kolayca tanınabilir.
5. TLS parmak izi alma. Modern anti-bot sistemleri (Cloudflare, Akamai), TLS el sıkışma parametrelerini analiz eder: cipher suites sırası, uzantılar, protokol sürümü. Python requests ve standart TLS kütüphanelerinin parmak izi, tarayıcılardan farklıdır — bu anında botu ifşa eder.
Gerçek bir durum: Müşterilerimizden biri, 100 veri merkezi proxy ile Booking'den fiyatları parse etti. 2 saatlik çalışmanın ardından tüm IP'ler kalıcı olarak engellendi — Booking, veri merkezi aralığını tespit etti ve kara listeye aldı. Konut proxylerine geçmek sorunu çözdü: bir ay boyunca — sıfır engelleme.
Fiyat izleme için hangi proxy türleri uygundur: karşılaştırma
Seyahat agregatörlerini parse etmek için üç tür proxy kullanılır: konut, mobil ve veri merkezi proxyleri. Her türün kendine özgü avantajları, dezavantajları ve kullanım senaryoları vardır. Seçim, parse hacmine, bütçeye ve anonimlik gereksinimlerine bağlıdır.
| Proxy Türü | Sitelerin Güven Düzeyi | Hız | Maliyet (şartlı) | En İyi Kullanım Alanı |
|---|---|---|---|---|
| Konut Proxyleri | Çok Yüksek (Ev kullanıcılarının IP'leri) | Orta (300-800 ms) | $$$ (trafik başına) | Booking, Expedia, Airbnb — sıkı korumaya sahip siteler |
| Mobil Proxyler | Maksimum (Mobil operatörlerin IP'leri) | Düşük (500-1500 ms) | $$$$ (en pahalı) | Mobil versiyonların parse edilmesi, API istekleri, Cloudflare'ı aşma |
| Veri Merkezi Proxyleri | Düşük (kolayca tespit edilir) | Çok Yüksek (50-150 ms) | $ (en ucuz) | Aviasales API, daha az korumalı agregatörler, testler |
Belirli seyahat siteleri için seçim özellikleri
Aviasales ve Skyscanner — API üzerinden parse etmeye karşı oldukça hoşgörülüdür (eğer ortaklık erişiminiz varsa). Web parse işlemleri için, her 5-10 istekte bir döngüye sahip konut proxyleri yeterlidir. Veri merkezi proxyleri çalışır, ancak büyük bir IP havuzuna (en az 500 adres) ve yavaş bir döngüye (bir IP'den 30 saniyede bir istekte bulunmaktan daha sık olmamak kaydıyla) ihtiyaç duyar.
Booking.com ve Expedia — sıkı kurallarla Cloudflare Enterprise kullanır. Veri merkezi proxyleri, yavaş parse etme durumunda bile %90 oranında engellenir. Sadece konut veya mobil proxyler gereklidir, ayrıca gerçek bir tarayıcıyı taklit etme (Selenium Stealth, Puppeteer Extra eklentileri ile) gereklidir. IP rotasyonu — her 3-5 istekte bir.
Airbnb — en korumalı sitelerden biridir. Arama sorgusuyla eşleşen coğrafi konumda konut proxyleri gerektirir (eğer Paris'te otel arıyorsanız — IP Fransız olmalıdır). Cookies, referans ve tarayıcı başlıkları zorunludur. Mobil proxyler, mobil API üzerinden parse için en iyi sonuçları gösterir.
Kayak ve Momondo — orta düzey koruma. Konut proxyleri — en iyi seçimdir. Veri merkezi proxyleri kullanılabilir, ancak zorunlu döngü ve istekler arasındaki gecikmelerle (en az 10-15 saniye) birlikte.
Konut vs veri merkezi proxyleri: seyahat siteleri için hangisini seçmelisiniz
Konut proxylerinin veri merkezi proxylerinden en büyük farkı — IP adresinin kaynağıdır. Konut proxyleri, gerçek ev internet sağlayıcılarının IP'lerini (Rostelecom, MTS, Comcast, Verizon) kullanırken, veri merkezi proxyleri, barındırma şirketlerinin sunucularının IP'lerini (AWS, Google Cloud, OVH) kullanır. Seyahat siteleri, konut IP'lerine güvenmektedir çünkü bunlar normal kullanıcılar tarafından kullanılmaktadır.
Konut proxylerinin zorunlu olduğu durumlar
1. Cloudflare/Akamai ile korunan sitelerin parse edilmesi. Booking, Expedia, Airbnb bu sistemleri kullanır — bunlar otomatik olarak veri merkezi IP'lerinin %95'ini engeller. Konut proxyleri, IP'leri proxy sağlayıcılarının veritabanlarında yer almadığı için kontrolü geçer.
2. Coğrafi konuma bağlı fiyat toplama. Seyahat siteleri, farklı ülkelerden ve şehirlerden gelen kullanıcılara farklı fiyatlar gösterir (vergiler, döviz kurları, yerel kampanyalar nedeniyle). Belirli bir bölge için fiyatlara ihtiyacınız varsa (örneğin, Almanya'daki kullanıcılar için fiyatlar), Alman IP'leri ile konut proxyleri — tek güvenilir seçenektir.
3. Engellemeler olmadan uzun süreli parse işlemleri. Eğer fiyatları 24/7 aylarca izliyorsanız, konut proxyleri kendini amorti eder — engellenen IP'leri değiştirmek ve yeni proxy ayarlamak için zaman harcamazsınız.
Veri merkezi proxylerinin kullanılabileceği durumlar
1. Resmi API'ler üzerinden parse işlemleri. Eğer Aviasales API, Skyscanner API'ye ortak erişiminiz varsa — proxy türü kritik değildir, API'ler IP kaynağına daha az duyarlıdır. Veri merkezi proxyleri yüksek hız ve düşük maliyet sağlar.
2. Parser'ın test edilmesi ve geliştirilmesi. Kod yazma ve hata ayıklama aşamasında veri merkezi proxylerini kullanın — bunlar daha ucuz, daha hızlıdır ve birkaç IP'nin banlanması durumunda üzülmezsiniz.
3. Daha az korumalı agregatörlerin parse edilmesi. Bazı bölgesel seyahat siteleri veya otobüs bileti agregatörleri gelişmiş anti-bot koruması kullanmaz. Bu tür siteler için, geniş bir IP havuzuna ve yavaş bir döngüye sahip veri merkezi proxyleri oldukça uygundur.
Tavsiye: Proxy türlerini birleştirin. Kritik istekler için konut proxylerini (ilk arama, token alma, CAPTCHA aşma) kullanın, veri merkezi proxylerini ise API'ye veya daha az korumalı uç noktalara yönelik toplu istekler için kullanın. Bu, maliyetleri %40-60 oranında düşürürken istikrarı koruyacaktır.
IP rotasyon stratejisi: parse sırasında proxyleri ne sıklıkla değiştirmelisiniz
Doğru IP rotasyonu, engellemeler olmadan uzun süreli parse işlemleri için anahtardır. Eğer IP'leri çok sık değiştirirseniz, adres havuzunu hızla tüketirsiniz ve trafik maliyetleriniz artar. Eğer çok seyrek değiştirirseniz, bir IP üzerinde şüpheli aktivite biriktirirsiniz ve banlanırsınız.
Proxy rotasyon türleri
1. İstek başına rotasyon (rotating proxies). IP, her isteğin ardından otomatik olarak veya belirli bir istek sayısından sonra değişir. Çoğu konut proxy sağlayıcısı bu modu sunar: bir uç noktaya bağlanırsınız (örneğin, gate.proxycove.com:8000), IP sağlayıcı tarafında değişir.
Artıları: Kolay kurulum, IP havuzunu manuel olarak yönetmeye gerek yok, bir IP'nin engellenme riski minimum.
Eksileri: Oturumları kontrol edemezsiniz (eğer cookies veya token'ları saklamanız gerekiyorsa), her istek = yeni IP = yeni trafik maliyetleri.
2. Sticky sessions (oturum proxyleri). IP, oturumunuza belirli bir süre (genellikle 10-30 dakika) bağlıdır. Bir IP'den birkaç istek yaparsınız, ardından otomatik olarak değişir. Proxy ayarları üzerinden yapılandırılır (örneğin, session-id123 ekleyerek).
Artıları: Oturum içinde cookies ve token'ları saklayabilirsiniz, trafik tüketimi daha azdır (bir IP = birkaç istek).
Eksileri: Eğer IP oturum sırasında banlanırsa, bu oturumda tüm sonraki istekler engellenir.
3. Havuzdan manuel rotasyon. Bir IP adresleri listesi (örneğin, 1000 adet) alırsınız ve parser kodunda rotasyonu yönetirsiniz: listeden rastgele bir IP seçer, N istekte bulunur, ardından bir sonraki IP'ye geçersiniz. Veri merkezi proxyleri için tipiktir.
Artıları: Rotasyon üzerinde tam kontrol, engellenen IP'leri havuzdan çıkarabilirsiniz.
Eksileri: Kodda rotasyon mantığını yazmanız gerekir, IP'nin durumunu yönetmek (hangilerinin kullanıldığı, hangilerinin engellendiği).
Seyahat siteleri için önerilen rotasyon sıklığı
| Site | Proxy Türü | Rotasyon Sıklığı | 1 IP ile Maks. İstek |
|---|---|---|---|
| Booking.com | Konut | 3-5 isteğin ardından | 5-7 |
| Expedia | Konut | 5-8 isteğin ardından | 8-10 |
| Airbnb | Konut/Mobil | 2-4 isteğin ardından | 3-5 |
| Aviasales | Konut/Veri Merkezi | 10-15 isteğin ardından | 15-20 |
| Skyscanner | Konut/Veri Merkezi | 8-12 isteğin ardından | 12-15 |
| Kayak | Konut | 5-10 isteğin ardından | 10-12 |
Önemli: Bu ortalama değerlerdir. Gerçek limitler, günün saatine (gece anti-bot sistemleri daha katıdır), istek türlerine (uçak bileti araması = otel görüntülemeden daha fazla API yükü) ve tarayıcı taklit kalitesine bağlıdır. Daha temkinli değerlerle başlayın (IP başına daha az istek), ardından engelleme oranını izleyerek yavaş yavaş artırın.
Proxy için coğrafi hedefleme: IP adresinin ülke ve şehirinin önemi
Seyahat siteleri, kullanıcının coğrafi konumuna bağlı olarak farklı fiyatlar gösterir. Bu bir hata değil, bir iş modelidir: havayolları ve oteller, farklı pazarlara farklı tarifeler belirler. Örneğin, Moskova-New York bileti, Rusya'dan gelen bir kullanıcı için $600, ABD'den gelen bir kullanıcı için $750 olabilir (vergiler, rekabet, satın alma gücü nedeniyle).
Siteler coğrafi konumu nasıl belirler
1. IP adresine göre. Temel yöntem. Siteler, IP'yi şehir, bölge, ülke ile eşleştiren GeoIP veritabanlarını (MaxMind, IP2Location) kullanır. Şehir belirleme doğruluğu — %70-90, ülke — %95-99.
2. Tarayıcı dili ve saat dilimine göre. Eğer IP Almanya'yı gösteriyorsa, ancak tarayıcı dili Rusça ve saat dilimi UTC+3 (Moskova) ise — bu bir proxy belirtisidir. Site, CAPTCHA gösterebilir veya isteği engelleyebilir.
3. Para birimi ve hesap ayarlarına göre. Eğer Booking hesabınıza giriş yaptıysanız, site kaydolduğunuzda ülkenizi hatırlamıştır. IP'yi başka bir ülkeye değiştirmek şüphe uyandırır — Booking kimliğinizi doğrulamanızı isteyebilir veya hesabınızı engelleyebilir.
Proxy'nin coğrafi konumunu doğru seçme
Belirli bir pazarın fiyatlarını toplamak için: İlginizi çeken fiyatların bulunduğu ülkenin IP'sini kullanın. Eğer Rusya pazarı için fiyatları izliyorsanız — Rus konut proxyleri alın. Avrupa pazarı için — AB ülkelerinden (Almanya, Fransa, Polonya) proxyler. ABD için — Amerikan proxyleri.
Coğrafi engelleri aşmak için: Bazı seyahat siteleri veya özel teklifler yalnızca belirli ülkelerden erişilebilir. Örneğin, ABD iç hat uçuşları, Amerikan IP'si ile rezervasyon yapıldığında genellikle daha ucuzdur. Gerekli ülkenin proxylerini kullanın + tarayıcı dilini ve saat dilimini bu ülkeye göre ayarlayın.
Küresel verilerin parse edilmesi için: Eğer tüm pazarlar için fiyatlara ihtiyacınız varsa (örneğin, analiz için), farklı ülkelerden proxy havuzu kullanın. IP ile birlikte coğrafi konumu döndürün: Alman IP ile istek → Alman fiyatları, Fransız IP ile istek → Fransız fiyatları.
Hata: Bir ülkenin IP'sini kullanmak, ancak başka bir ülkede otel/bilet aramak ve uyumsuz bir para birimi kullanmak. Örneğin, Rusya'dan gelen bir IP, Tayland'da otel arıyor, para birimi — euro. Bu şüpheli görünür. Ya hedef ülkenin IP'sini kullanın ya da gerçek ülkenizin para birimi ile IP kullanın.
Popüler parserlar ve scriptler için proxy ayarları
Seyahat sitelerinin en popüler araçları için proxy ayarlarını inceleyeceğiz. Örnekler konut proxyleri ile döngü için verilmiştir, ancak diğer türler için de uygundur.
Python + requests / httpx
API veya JavaScript içermeyen basit sayfaları parse etmek için en basit seçenektir. Aviasales API, Skyscanner API, Cloudflare olmayan basit uç noktalar için uygundur.
import requests
# Proxy verileri (kendi verilerinizle değiştirin)
proxy_host = "gate.proxycove.com"
proxy_port = "8000"
proxy_user = "your_username"
proxy_pass = "your_password"
proxies = {
"http": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
"https": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
}
# Tarayıcı başlıkları (zorunlu!)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Accept-Language": "en-US,en;q=0.9",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Referer": "https://www.google.com/"
}
# Proxy üzerinden istek
response = requests.get(
"https://www.aviasales.com/search",
proxies=proxies,
headers=headers,
timeout=30
)
print(response.status_code)
print(response.text[:500]) # Cevabın ilk 500 karakteri
Önemli: Döngüye sahip konut proxyleri ile her yeni istek otomatik olarak yeni bir IP alır. Eğer sticky session (bir IP ile birkaç istek) gerekiyorsa, kullanıcı adınıza oturum ID'sini ekleyin: your_username-session-12345.
Selenium (JavaScript içeren siteler için)
Booking, Expedia, Airbnb içerik render'ı ve anti-bot kontrolleri için aktif olarak JavaScript kullanır. Selenium, gerçek bir tarayıcıyı taklit eder, ancak tespit aşmasını sağlamak için ek ayarlar gerektirir.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
# Chrome ayarları
chrome_options = Options()
# Proxy
proxy_host = "gate.proxycove.com"
proxy_port = "8000"
proxy_user = "your_username"
proxy_pass = "your_password"
# Chrome için proxy formatı
chrome_options.add_argument(f'--proxy-server=http://{proxy_host}:{proxy_port}')
# Otomasyonu gizle
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
# User-Agent
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36')
driver = webdriver.Chrome(options=chrome_options)
# webdriver özelliğini kaldır
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
# Proxy kimlik doğrulaması (gerekirse)
# Chrome için kimlik doğrulaması ile bir uzantı oluşturmanız gerekir, bkz. selenium-wire veya daha basit bir şekilde Puppeteer kullanın
driver.get("https://www.booking.com/")
print(driver.title)
driver.quit()
Problem: Chrome, proxy kimlik doğrulamasını doğrudan login:password ile desteklemez. Çözümler: selenium-wire kütüphanesini kullanın (kimlik doğrulamalı proxy ekler), kimlik doğrulaması için bir Chrome uzantısı oluşturun veya Puppeteer (Node.js) kullanın.
Puppeteer (Node.js) — karmaşık siteler için en iyi seçim
Puppeteer, Selenium'dan daha iyi bir tarayıcı taklidi yapar ve proxy kimlik doğrulaması ile kolayca yapılandırılır. Booking, Airbnb, Expedia için önerilir.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: true,
args: [
'--proxy-server=http://gate.proxycove.com:8000',
'--disable-blink-features=AutomationControlled',
'--no-sandbox'
]
});
const page = await browser.newPage();
// Proxy kimlik doğrulaması
await page.authenticate({
username: 'your_username',
password: 'your_password'
});
// webdriver'ı gizle
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
});
});
// User-Agent
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');
await page.goto('https://www.booking.com/', { waitUntil: 'networkidle2' });
const title = await page.title();
console.log('Başlık:', title);
await browser.close();
})();
Tespit edilme riskini daha da azaltmak için puppeteer-extra-plugin-stealth eklentisini kullanın — bu, otomasyonu gizlemek için tüm izleri otomatik olarak kaldırır.
Hazır çözümler: Scrapy, Crawlee
Scrapy (Python) — büyük ölçekli parse işlemleri için bir framework. Proxy'leri middleware üzerinden destekler. settings.py dosyasında ayar örneği:
# settings.py
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 1,
}
# Spider içinde
class TravelSpider(scrapy.Spider):
def start_requests(self):
proxy = "http://your_username:your_password@gate.proxycove.com:8000"
yield scrapy.Request(
url="https://www.aviasales.com/",
meta={'proxy': proxy},
callback=self.parse
)
Crawlee (Node.js) — yerleşik proxy döngüsü, anti-bot sistemlerini aşma, otomatik yeniden deneme ile modern bir framework. Seyahat siteleri için mükemmel bir seçimdir.
Cloudflare, PerimeterX, Akamai anti-bot sistemlerini aşma
Kaliteli konut proxyleri ile bile, anti-bot sistemlerini doğru şekilde aşmadığınız takdirde engellemelerle karşılaşabilirsiniz. Booking Cloudflare kullanırken, Airbnb PerimeterX kullanır, bazı siteler ise Akamai Bot Manager kullanır. Bu sistemler yalnızca IP'yi değil, davranışı, tarayıcı parmak izini ve TLS el sıkışmasını da analiz eder.
Cloudflare: aşmanın ana yöntemleri
1. Tarayıcı otomasyonu kullanın. Cloudflare, tarayıcıda gerçekleştirilen JavaScript-challenge'ı kontrol eder. Basit HTTP istekleri (requests, curl) bu kontrolü geçemez. Puppeteer, Playwright veya doğru ayarlarla Selenium gereklidir.
2. Otomasyon izlerini gizleyin. puppeteer-extra-plugin-stealth (Node.js) veya undetected-chromedriver (Python) kurun. Bu kütüphaneler, navigator.webdriver, window.chrome özelliklerini kaldırarak tarayıcıyı yamalar, izin API'lerini değiştirir.
3. Doğru TLS parmak izi. Cloudflare, TLS el sıkışmasını analiz eder. Tarayıcıların TLS'ini taklit eden kütüphaneler kullanın: curl-impersonate (Chrome/Firefox TLS'ini taklit eder), tls-client (Go), hrequests (Python).
4. CAPTCHA'yı otomatik olarak çözün. Eğer Cloudflare CAPTCHA gösteriyorsa (Turnstile), CAPTCHA çözüm hizmetlerini kullanın: 2Captcha, Anti-Captcha, CapSolver. Bunlar API üzerinden entegre edilir ve 1000 çözüm için $1-3 arasında maliyetlidir.
PerimeterX (Airbnb, bazı seyahat siteleri)
PerimeterX, en karmaşık anti-bot sistemlerinden biridir. Kullanıcı davranışını (fare hareketleri, tıklamalar, kaydırma) analiz eder, cihazın parmak izini oluşturur, cookies ve localStorage'ı kontrol eder.
Aşma yöntemleri:
1. Kullanıcı davranışını taklit edin. Eylemler arasında rastgele duraklamalar ekleyin (2-5 saniye), fareyi hareket ettirin, sayfayı kaydırın. Puppeteer'de, gerçekçi fare hareketleri için ghost-cursor kütüphanesini kullanın.
2. Cookies ve localStorage'ı saklayın. PerimeterX, cookies (_px3, _pxhd) ve localStorage'da saklanan token'lar oluşturur. Eğer IP'nizi değiştirirseniz ama cookies'i saklarsanız — bu şüpheli görünür. Ya IP'yi değiştirin + cookies'i temizleyin ya da sticky sessions (bir IP = bir oturum) kullanın.
3. Mobil proxyleri kullanın. PerimeterX, veri merkezi IP'lerine karşı daha serttir. Mobil proxyler, PerimeterX'i aşmak için daha iyi sonuçlar gösterir.
Akamai Bot Manager
Akamai, dokunmatik verileri (mobilde ivmeölçer, jiroskop), WebGL parmak izi, ses bağlamı, cihaz performansını analiz eder. Aşmak, gelişmiş bir tarayıcı taklidi gerektirir.
Tavsiyeler: Gerçek tarayıcılar (headless değil), mobil proxyler kullanın, rastgele gecikmeler ekleyin, dokunmatik olayları taklit edin. Karmaşık durumlar için — tarayıcı çiftlikleri (BrowserStack, LambdaTest) veya anti-tespit tarayıcıları (AdsPower, Multilogin) kullanın.
Proxy kullanarak seyahat sitelerini parse ederken yaygın hatalar
Deneyimli geliştiriciler bile, engellere yol açan hatalar yapabilir. İşte en sık karşılaşılan sorunlar ve çözümleri.
Hata 1: Tüm istekler için aynı User-Agent kullanmak
Eğer tüm istekleriniz aynı User-Agent ile geliyorsa (örneğin, standart Python requests: python-requests/2.28.0), bu anında botu ifşa eder. IP'yi değiştirseniz bile, site aynı UA'yı görür ve istekleri bağlar.
Çözüm: Gerçek tarayıcıların (Chrome, Firefox, Safari) User-Agent listesini kullanın ve bunları döndürün. fake-useragent (Python) kütüphanesi, rastgele UA'lar oluşturur.
Hata 2: Çok yüksek istek hızı
Parser, saniyede 100 istek yapıyorsa — bu insan için fiziksel olarak mümkün değildir. Farklı IP'lerle bile, anti-bot sistemleri tüm isteklerin tam olarak 0.01 saniye arayla geldiğini tespit eder.
Çözüm: İstekler arasında rastgele gecikmeler ekleyin: time.sleep(random.uniform(2, 5)). Seyahat siteleri için en uygun: bir IP'den 2-5 saniye, farklı IP'lerden 0.5-2 saniye arasında gecikme.
Hata 3: Cookies ve oturumları göz ardı etmek
Seyahat siteleri, oturumları izlemek, anti-bot sistemlerinin token'larını saklamak, fiyatları kişiselleştirmek için cookies kullanır. Eğer her isteği cookies olmadan yapıyorsanız (yeni bir kullanıcı gibi), bu şüpheli görünür.
Çözüm: requests.Session() (Python) kullanın veya Puppeteer'de istekler arasında cookies'i saklayın. Sticky sessions (bir IP = birkaç istek) için cookies'i saklamak zorunludur.
Hata 4: IP'nin coğrafi konumu ve tarayıcı parametrelerinin uyumsuzluğu
Almanya'dan bir IP, ancak tarayıcı dili Rusça, saat dilimi UTC+3, para birimi ruble. Anti-bot sistemleri bu uyumsuzluğu görür ve isteği engeller.
Çözüm: Tarayıcı parametrelerini proxy'nin coğrafi konumuyla senkronize edin. Eğer Alman IP kullanıyorsanız — Almanca dilini (Accept-Language: de-DE), saat dilimini Europe/Berlin, para birimini EUR olarak ayarlayın.
Hata 5: Ücretsiz veya düşük kaliteli proxy kullanmak
Ücretsiz proxyler ve ucuz kamu proxyleri, tüm büyük seyahat sitelerinde zaten engellenmiştir. IP'leri kara listelerde yer alır, kötü bir üne sahiptir (spam, DDoS için kullanılmıştır).
Çözüm: Güvenilir sağlayıcılardan kaliteli konut veya mobil proxyler kullanın. Kullanımdan önce IP'lerin itibarını IPQualityScore, Scamalytics gibi hizmetlerle kontrol edin.
Parser'ı başlatmadan önce kontrol listesi:
✅ Proxy — konut veya mobil, gerekli coğrafi konumda
✅ User-Agent — gerçek bir tarayıcı, döndürülüyor
✅ Cookies — oturum içinde saklanıyor
✅ Gecikmeler — istekler arasında 2-5 saniye
✅ IP rotasyonu — 3-10 isteğin ardından (siteye bağlı olarak)