
1. Hata sayımıyla döndürme
import collections, itertools, requests
proxies = [l.strip() for l in open("proxies.txt") if l.strip()]
failures = collections.Counter()
pool = itertools.cycle(proxies)
def get(url, attempts=10):
for _ in range(attempts):
proxy = next(pool)
if failures[proxy] >= 3:
continue
try:
return requests.get(
url,
proxies={"http": f"http://{proxy}", "https": f"http://{proxy}"},
timeout=8,
)
except requests.RequestException:
failures[proxy] += 1
raise RuntimeError("pool exhausted")Zaman kazandıran notlar
Proxy başına hataları saymak ve tekrar edenleri atlamak, ham listeyi kullanılabilir bir havuza dönüştüren şeydir; bu olmadan aynı ölü girdiler için zaman aşımı ödemeye devam edersiniz. Dosyayı yayın sıklığında yenileyin ve bunu yaparken sayacı sıfırlayın. Bu hata oranını kaldıramayacağınız üretim yüklerinde, bakımı yapılan bir dönen uç nokta daha doğru araçtır.
İlgili rehberler
Genel anlık görüntü sınırları
Ücretsiz genel proxy'ler paylaşımlıdır ve kimliği bilinmeyen taraflarca işletilir. Asla parola, token veya kişisel veri göndermeyin. GitHub Kabul Edilebilir Kullanım Politikalarına uyun: spam yok, saldırı yok, erişim denetimlerini aşma yok, site politikalarına aykırı kazıma yok.
Ücretsiz genel proxy'ler paylaşımlıdır ve kimliği bilinmeyen taraflarca işletilir. Asla parola, token veya kişisel veri göndermeyin. GitHub Kabul Edilebilir Kullanım Politikalarına uyun: spam yok, saldırı yok, erişim denetimlerini aşma yok, site politikalarına aykırı kazıma yok.