Cephanenizi Seçmek: Vahşi Doğada Ücretsiz Proxy'ler
Dijital agorada, vekiller geçici nöbetçiler olarak dururlar—anonimliğe, özgürlüğe ve ne yazık ki kırılganlığa açılan kapılar. Özgür vekil, o yakalanması zor yaratık, geçişi sağlar ancak bir bedeli vardır: istikrarsızlık, boğulma veya en kötü senaryoda ihanet. Manzarayı Kartezyen bir netlikle inceleyelim:
Proxy Türü | Anonimlik | Hız | Güvenilirlik | Örnek Kaynak |
---|---|---|---|---|
HTTP/HTTPS Proxy'leri | Orta | Ilıman | Düşük | https://free-proxy-list.net/ |
SOCKS4/5 Proxy'leri | Yüksek | Düşük | Çok Düşük | https://socks-proxy.net/ |
Şeffaf Proxy'ler | Hiçbiri | Hızlı | Düşük | https://spys.one/ |
Uyarı: Ücretsiz proxy'ler herkese açıktır ve tehlikeye atılabilir. Asla kimlik bilgilerinizi veya hassas verilerinizi bunlar aracılığıyla göndermeyin.
Vekalet Hasadı: Ritüel
Geçici olanla bir dans otomasyon gerektirir. Python ve onun müritlerini çağıralım, istekler
Ve GüzelÇorba
, proxy'leri almak için:
bs4'ten istekleri içe aktar BeautifulSoup'u içe aktar def fetch_proxies(): url = 'https://free-proxy-list.net/' soup = BeautifulSoup(requests.get(url).content, 'html.parser') proxy'ler = [] soup.find('table', id='proxylisttable').tbody.find_all('tr') satırı için: tds = row.find_all('td') if tds[6].text == 'yes': # Yalnızca HTTPS proxy = f"{tds[0].text}:{tds[1].text}" proxy'ler.append(proxy) proxy'leri döndür
Rotasyondaki Vekiller: Gizleme Sanatı
Amazon ve eBay, o dijital kaleler, mekanik hassasiyetle ban çekiçlerini kullanıyor. Çözüm? Vekilleri döndürün, kullanıcı aracılarını değiştirin ve gecikmeler enjekte edin—yanlış yönlendirmenin bir koreografisi.
içe aktar rastgele içe aktar zaman proxy'leri = fetch_proxies() kullanıcı_araçları = [ # Bir grup kullanıcı aracısı 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...', # Daha fazlasını ekle ] def get_random_headers(): return {'Kullanıcı-Aracı': random.choice(user_agents)} def get_random_proxy(): return {'http': f"http://{random.choice(proxies)}", 'https': f"http://{random.choice(proxies)}"} def request_with_proxy(url): for attempt in range(5): proxy = get_random_proxy() headers = get_random_headers() try: response = istekler.get(url, headers=headers, vekiller=proxy, zaman aşımı=5) yanıt.durum_kodu == 200 ise: yanıt.metinini döndür İstisna hariç: devam et time.sleep(random.uniform(1, 3)) return None
Amazon'u Kazımak: Labirentte Gezinmek
Amazon bot karşıtı büyüler örüyor: CAPTCHA'lar, dinamik içerik, IP yasakları. Küçük ölçekli kazıma için ürün listelerine odaklanın; daha fazlası için etik sınırları ve yasal sınırları göz önünde bulundurun.
Örnek: Ürün Başlıklarını Çıkarma
bs4'ten BeautifulSoup'u içe aktar def scrape_amazon_product_title(asin): url = f"https://www.amazon.com/dp/{asin}" html = request_with_proxy(url) html değilse: print("Sayfa alınamadı.") return None soup = BeautifulSoup(html, 'html.parser') title = soup.find('span', id='productTitle') return title.text.strip() if title else None asin = 'B08N5WRWNW' # Örnek ASIN print(scrape_amazon_product_title(asin))
eBay'i Kazımak: Çarşıdan Geçmek
Daha az dikkatli bir bekçi olan eBay, hala oran sınırlama ve bot algılama kullanıyor; daha az ciddi, ancak mevcut. Ürün sayfasına odaklanın (örneğin, https://www.ebay.com/itm/ITEMID).
Örnek: Ürün Fiyatını Çıkarma
def scrape_ebay_price(item_id): url = f"https://www.ebay.com/itm/{item_id}" html = request_with_proxy(url) if not html: print("Sayfa alınamadı.") return None soup = BeautifulSoup(html, 'html.parser') price = soup.find('span', id='prcIsum') return price.text.strip() if price else None item_id = '234567890123' # Örnek Öğe Kimliği print(scrape_ebay_price(item_id))
Bulanıklaştırma: Kaçışın Şiiri
- İstek aralıklarını rastgele yap:
piton
zaman.uyku(rastgele.üniform(2, 6)) - Proxy'leri ve kullanıcı aracılarını karıştır her istekle birlikte.
- Proxy'leri duraklatın veya değiştirin HTTP 503, 403 veya CAPTCHA tespitlerinde.
Sınırlamalar ve Yasallıklar:
Alan | Maksimum İstek/saat (Tahmini) | Ana Karşı Önlemler |
---|---|---|
Amazon | ~50-100 | Captcha'lar, IP yasakları, JS kontrolleri |
eBay | ~200-300 | Hız sınırlaması, Captcha'lar |
En İyi Uygulamalar:
- Kullanmadan önce proxy'lerin canlılığını test edin (çoğu birkaç saat içinde ölür).
- Robots.txt dosyasına saygı gösterin, yasak olan yerlere girmeyin.
- Eşzamanlılığı sınırlayın (ücretsiz proxy'lerle iş parçacığı fırtınalarını önleyin).
- Zarafetle ayrıştırın; site düzenleri ilkbahar çalılıkları gibi değişir.
Araçlar ve Kütüphaneler:
Görev | Önerilen Araç |
---|---|
Proxy Kazıma | GüzelÇorba |
HTTP İstekleri | istekler, httpx |
Ayrıştırma | GüzelÇorba, lxml |
Vekalet Rotasyonu | istekler + özel |
Örnek Proxy Doğrulama Rutini:
def validate_proxy(proxy): deneyin: r = istekler.get('https://httpbin.org/ip', proxy'ler={'http': proxy, 'https': proxy}, zaman aşımı=3) return r.status_code == 200 hariç: return False proxy'ler = [p for p in proxys if validate_proxy(p)]
Azim Üzerine Son Bir Not:
Ücretsiz proxy'lerle kazımak, ufku kovalamaktır—sürekli değişen, her zaman erişilemeyen. Döndürün, uyarlayın ve her isteğin dijital ticaret okyanusunda bir damla olduğunu asla unutmayın. Web yaşayan bir şeydir; ona öyle davranın ve yine de sırlarını ortaya çıkarabilir.
Yorumlar (0)
Burada henüz yorum yok, ilk siz olabilirsiniz!