Python ile Proxy Rotasyonu Nasıl Otomatikleştirilir

Python ile Proxy Rotasyonu Nasıl Otomatikleştirilir

Proxy Rotasyonunu Anlamak

Web kazıma ve otomatik isteklerin hassas balesinde, proxy rotasyonu hem kalkan hem de kılıç görevi görür. Dijital ayak izinizi gizleyerek, isteklerin kaynağını dikkatli sunuculara bildirmemesini sağlar. Proxy rotasyonu, özenle seçilmiş bir proxy sunucuları listesi arasında geçiş yaparak, her isteğin farklı bir kaynaktan geliyormuş gibi görünmesini sağlar; yasaklardan, hız sınırlarından ve bot karşıtı mekanizmaların uğursuz bakışlarından kaçınır.


Temel Vekil Rotasyon Stratejileri

Strateji Tanım Kullanım Örneği Karmaşıklık
Yuvarlak Robin Sırayla proxy'ler arasında geçiş yapar Genel kazıma, düşük şüphe hedefleri Düşük
Rastgele Seçim Her istek için havuzdan rastgele bir proxy seçer Algılanabilen kalıplardan kaçınmak Orta
Uyarlanabilir/Akıllı Seçim Sağlık, hız veya yasaklama geçmişine göre proxy'leri seçer Büyük ölçekli, yüksek hassasiyetli kazıma Yüksek

Vekalet Listesinin Hazırlanması

Proxy listesi, rotasyonun can damarıdır. Ücretli sağlayıcılardan temin edilebilir. Parlak Veri, Oksilablar, veya ücretsiz toplayıcılar gibi Ücretsiz Proxy Listesi.

Tablo: Proxy Listesi Biçimi Örnekleri

Biçim Örnek
IP:Bağlantı Noktası 51.158.68.68:8811
IP:Port:Kullanıcı:Şifre 51.158.68.68:8811:kullanıcı adı:şifre

Proxy'lerinizi düz metin dosyasında saklayın (örneğin, proxy'ler.txt) her satıra bir proxy ile hem şık hem de pratik bir uygulama.


Python'da Proxy Rotasyonunu Uygulama

1. Vekil Listesini Okuma

def load_proxies(dosya_adı): with open(dosya_adı, 'r') as f: return [line.strip() for line in f if line.strip()]

2. Round Robin Vekil Rotasyonu

itertools proxy'lerini içe aktar = load_proxies('proxies.txt') proxy_pool = itertools.cycle(proxies) def get_next_proxy(): return next(proxy_pool)

Her çağrı get_next_proxy() kusursuz, sonsuz bir döngünün bir sonraki vekilini sunuyor: Paris valsinin düzenli zarafetine bir övgü.

3. İsteklerle Entegrasyon

HTTP istekleri için, istekler Kütüphane hem sağlam hem de erişilebilir.

istekleri içe aktar def format_proxy(proxy): parçalar = proxy.split(':') eğer len(parçalar) == 2: return {'http': f'http://{proxy}', 'https': f'https://{proxy}'} elif len(parçalar) == 4: ip, port, kullanıcı, şifre = parçalar proxy_auth = f"{kullanıcı}:{şifre}@{ip}:{port}" return {'http': f'http://{proxy_auth}', 'https': f'https://{proxy_auth}'} değilse: ValueError("Geçersiz proxy biçimi") hatası yükselt url = "https://httpbin.org/ip" proxy = get_next_proxy() proxies_dict = format_proxy(proxy) response = requests.get(url, proxy'ler=proxies_dict, zaman aşımı=10) print(response.json())

İsteklerle Proxy Rotasyonu - HTML ve Selenium

Proust tarzı madlenler kadar anlaşılması zor bazı web sayfaları, JavaScript'in işlenmesini gerektirir. Bunlar için, İstekler-HTML veya Selenyum vazgeçilmezdir.

İstekler-HTML Örneği:

requests_html'den HTMLSession'ı içe aktarın session = HTMLSession() proxy = get_next_proxy() proxies_dict = format_proxy(proxy) r = session.get('https://httpbin.org/ip', proxies=proxies_dict) print(r.html.text)

Selenyum Örneği:

Selenium, sürücü düzeyinde proxy kurulumu gerektirir.

selenium'dan webdriver'ı içe aktar selenium.webdriver.common.proxy'den Proxy, ProxyType'ı içe aktar def configure_selenium_proxy(proxy): ip, port = proxy.split(':')[:2] selenium_proxy = Proxy() selenium_proxy.proxy_type = ProxyType.MANUAL selenium_proxy.http_proxy = f"{ip}:{port}" selenium_proxy.ssl_proxy = f"{ip}:{port}" return selenium_proxy proxy = get_next_proxy() chrome_options = webdriver.ChromeOptions() selenium_proxy = configure_selenium_proxy(proxy) yetenekler = webdriver.DesiredCapabilities.CHROME.copy() selenium_proxy.add_to_capabilities(yetenekler) sürücü = webdriver.Chrome(seçenekler=chrome_seçenekleri, istenen_yetenek=yetenek) driver.get('https://httpbin.org/ip')

Proxy Sağlığını ve Devralmayı Yönetme

Zarif bir betik, zorluklara hızla uyum sağlar. Proxy'ler zaman aşımına uğrayabilir, kara listeye alınabilir veya gecikme nedeniyle çökebilir. Bu nedenle, durumlarını izleyin ve sorunlu olanları kaldırın veya önceliklerini düşürün.

def check_proxy(proxy): deneyin: proxies_dict = format_proxy(proxy) resp = requests.get('https://httpbin.org/ip', proxies=proxies_dict, timeout=5) return resp.status_code == 200 except Exception: return False healthy_proxies = [p for p in proxies if check_proxy(p)]

Daha gelişmiş sağlık kontrolleri ve otomatik devralma için şu tür kitaplıkları göz önünde bulundurun: scrapy-dönen-proxy'ler.


Üçüncü Taraf Kitaplıklarını Kullanma

Daha kapsamlı bir düzenleme için üçüncü taraf kütüphaneler bir özellikler senfonisi sunar:

Kütüphane Özellikler Belgeleme
scrapy-dönen-proxy'ler Proxy havuzu yönetimi, yasak tespiti https://github.com/TeamHG-Memex/scrapy-rotating-proxies
proxy_pool Proxy toplama, doğrulama, döndürme https://github.com/jhao104/proxy_pool
istekler-rastgele-kullanıcı-aracı Kullanıcı Aracısı ve proxy rastgeleleştirme https://pypi.org/project/requests-random-user-agent/

Proxy Rotasyonu için En İyi Uygulamalar

  • Çeşitlilik: Farklı IP aralıklarından ve konumlardan proxy'ler kullanın.
  • Robotlara Saygı.txt: Dijital medeniyet ruhuna uygun olarak web sitesi politikalarına uyun.
  • Hız Sınırlaması: İnsan davranışlarını taklit etmek ve tespit edilmekten kaçınmak için istekleri kısıtlayın.
  • Günlük kaydı: Gelecekteki iyileştirmeler için proxy kullanımını ve arızalarını kaydedin.
  • Hukuki Hususlar: Faaliyetlerinizin yasal ve etik manzarasını inceleyin (bkz. EFF'nin rehberi).

Daha Fazla Okuma

Bu araçlar ve uygulamalar, web'in çok sayıdaki bulvarında size bir pasaport olsun; her talep, sürekli değişen bir maskenin ince zarafetiyle karşılansın.

Solange Lefebvre

Solange Lefebvre

Kıdemli Vekalet Analisti

Dijital yolların uzmanı olan Solange Lefebvre, on yıldan uzun süredir ProxyMist'in analitik departmanının başında. Ağ güvenliği ve proxy sunucu yönetimi alanındaki eşsiz uzmanlığıyla, küresel çapta en kapsamlı SOCKS, HTTP, elite ve anonim proxy sunucularından birinin düzenlenmesinde ve sürdürülmesinde etkili oldu. Kesinliğe yatkınlığı olan bir Fransız vatandaşı olan Solange, ProxyMist'in güvenli internet çözümlerinin ön saflarında kalmasını sağlıyor.

Yorumlar (0)

Burada henüz yorum yok, ilk siz olabilirsiniz!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir