Web Scraping'de User-Agent ve Header Yönetimi
23 viewsWeb Scraping'de User-Agent ve Header Yönetimi
Web scraping yaparken siteler sadece IP adresinizi değil, tarayıcı bilgilerinizi de kontrol eder. Bu bilgiler User-Agent ve diğer HTTP header’ları aracılığıyla iletilir.
Bu makalede User-Agent ve header yönetiminin scraping projelerindeki önemini ve nasıl doğru yapılacağını anlatacağız.
User-Agent Nedir?
User-Agent, tarayıcınızın ve işletim sisteminizin kimliğini belirten bir HTTP header’ıdır. Web siteleri bu bilgiyi kullanarak ziyaretçinin gerçek bir tarayıcı mı yoksa bot mu olduğunu anlamaya çalışır.
Örnek User-Agent’lar:
- Chrome (Windows): Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
- Safari (iPhone): Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)...
Neden User-Agent ve Header Yönetimi Önemlidir?
Siteler şu durumlarda bot olduğunuzu anlayabilir:
- Her istekte aynı User-Agent kullanmak
- Gerçek tarayıcıda olmayan header’lar göndermek
- Tutarsız header kombinasyonları (örneğin Windows User-Agent + Mac header’ları)
Bu nedenle User-Agent rotasyonu ve header yönetimi, ban riskini azaltmak için kritik tekniklerdir.
User-Agent Rotasyonu Nasıl Yapılır?
1. Basit User-Agent Rotasyonu (Python)
Python
import requests import random USER_AGENTS = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36...", "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)..." ] headers = { "User-Agent": random.choice(USER_AGENTS) } response = requests.get("https://example.com", headers=headers)
2. fake-useragent Kütüphanesi ile Kullanım
Python
from fake_useragent import UserAgent import requests ua = UserAgent() headers = {"User-Agent": ua.random} response = requests.get("https://example.com", headers=headers)
Önemli Header’lar ve Yönetimi
Sadece User-Agent yetmez. Gerçek bir tarayıcı gibi davranmak için şu header’ları da yönetmelisiniz:
| Header | Açıklama | Öneri |
|---|---|---|
| User-Agent | Tarayıcı ve işletim sistemi bilgisi | Rotasyon yapılmalı |
| Accept-Language | Tercih edilen dil | tr-TR,tr;q=0.9 gibi gerçekçi değerler |
| Accept-Encoding | Desteklenen encoding | gzip, deflate, br |
| Referer | Hangi sayfadan gelindiği | Mantıklı değerler kullanılmalı |
| Connection | Bağlantı türü | keep-alive |
| Sec-Fetch-* | Modern tarayıcı güvenlik header’ları | Mümkün olduğunca eklenmeli |
En İyi Uygulamalar
- Her istekte farklı User-Agent kullanın
- Header’ları tutarlı tutun (Windows User-Agent ile Mac header’ı karıştırmayın)
- Mobil User-Agent’ları da rotasyona dahil edin
- fake-useragent kütüphanesini güncel tutun
- Gerektiğinde özel header listesi oluşturun (daha güvenli)
Sonuç
User-Agent ve header yönetimi, web scraping’de ban riskini azaltmak için proxy rotasyonu kadar önemlidir. Gerçek bir tarayıcı gibi davranmak, sitelerin bot tespit sistemlerini yanıltmanın en etkili yollarından biridir.
Proxy + User-Agent Rotasyonu + Header Yönetimi üçlüsü bir arada kullanıldığında scraping başarı oranı önemli ölçüde artar.
Bir sonraki makalemizde Python ile Web Scraping'e Giriş konusunu detaylı olarak inceleyeceğiz.
Hangi proxy türünün sizin projenize daha uygun olduğunu öğrenmek isterseniz, bizimle iletişime geçebilirsiniz.
ProxymoTR - Premium Proxy Services
