Web Scraping İçin Proxy ve User-Agent Yönetimi

1 views

Web Scraping İçin Proxy ve User-Agent Yönetimi

Web scraping projelerinde en büyük sorunlardan biri ban yemektir. Siteler botları tespit etmek için IP adresini ve tarayıcı bilgilerini (User-Agent) kontrol eder. Bu nedenle proxy ve User-Agent yönetimi scraping projelerinin en kritik parçalarından biridir.

Bu makalede etkili proxy ve User-Agent yönetim stratejilerini anlatacağız.

1. Neden Proxy ve User-Agent Kullanmalıyız?

Sebep Açıklama
IP Tespiti Aynı IP’den çok fazla istek atarsanız ban yersiniz
User-Agent Tespiti Bot gibi görünen User-Agent’lar kolayca engellenir
Davranış Analizi Gerçek kullanıcı gibi davranmak gerekir
Coğrafi Kısıtlamalar Bazı içerikler sadece belirli ülkelerden erişilebilir

 

2. User-Agent Rotasyonu

User-Agent’ı her istekte değiştirerek bot gibi görünmeyi azaltabilirsiniz.

Python Örneği (requests + fake-useragent):

Python

 

import requests from fake_useragent import UserAgent ua = UserAgent() headers = {    'User-Agent': ua.random } response = requests.get("https://example.com", headers=headers)

Daha Güvenilir Yöntem (Kendi User-Agent Listeniz):

Python

 

import random import requests 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 (X11; Linux x86_64) AppleWebKit/537.36..." ] headers = {    'User-Agent': random.choice(USER_AGENTS) }

3. Proxy Rotasyonu

Proxy rotasyonu, scraping’in en önemli tekniklerinden biridir.

Basit Proxy Rotasyonu Örneği:

Python

 

import requests import random PROXIES = [    "http://proxy1:8080",    "http://kullanici:sifre@proxy2:3128",    "socks5://proxy3:1080" ] proxy = random.choice(PROXIES) response = requests.get(    "https://example.com",    proxies={"http": proxy, "https": proxy},    headers={"User-Agent": "Mozilla/5.0..."} )

4. Gelişmiş Strateji: Proxy + User-Agent + Delay

En etkili yöntem bu üçünü bir arada kullanmaktır:

Python

 

import requests import random import time from fake_useragent import UserAgent ua = UserAgent() PROXIES = [...]  # Proxy listeniz def scrape(url):    proxy = random.choice(PROXIES)    headers = {'User-Agent': ua.random}        try:        response = requests.get(            url,            proxies={"http": proxy, "https": proxy},            headers=headers,            timeout=10        )        return response.text    except Exception as e:        print(f"Hata: {e}")        return None # Kullanım for url in url_list:    html = scrape(url)    time.sleep(random.uniform(1, 3))  # Rastgele bekleme

5. En İyi Uygulamalar

Uygulama Açıklama
Residential / Mobile Proxy En düşük ban riski
User-Agent Rotasyonu Her istekte farklı User-Agent
Rastgele Bekleme time.sleep(random.uniform(1, 4))
Proxy Rotasyonu Her istekte veya her 5-10 istekte proxy değiştir
Session Yönetimi Aynı proxy ile uzun süre kalmayın (Sticky Session dikkat)
Referer ve Header Yönetimi Gerçek tarayıcı gibi header’lar gönderin

 

6. Hangi Proxy Türü Ne Zaman Kullanılmalı?

Proje Türü Önerilen Proxy Türü Neden?
Basit sitelerden scraping Datacenter Proxy Hızlı ve ucuz
Korumalı siteler (Instagram, vs.) Residential / Mobile Düşük tespit riski
Yüksek hacimli scraping Residential Proxy Denge
Sosyal medya otomasyonu Mobile Proxy En güvenli

 

Sonuç

Web scraping’de başarı, sadece kod yazmakla değil, proxy ve User-Agent yönetimini ne kadar iyi yaptığınızla doğrudan ilişkilidir.

Proxy rotasyonu + User-Agent rotasyonu + rastgele bekleme kombinasyonu, ban riskini büyük ölçüde azaltır.

Profesyonel projelerde bu üçünü mutlaka bir arada kullanmanızı öneririz.

Bir sonraki makalemizde Proxy ile IP Rotasyonu ve Sticky Session Yönetimi konusunu detaylı olarak inceleyeceğiz.

Top