Free Proxy Health List

Instantánea en vivo · 3,287 proxies

Crear un pool de proxies rotativo

Un bucle de rotación funcional con seguimiento de salud en unas 20 líneas.

Crear un pool de proxies rotativo

1. Rotación con conteo de fallos

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")

Notas que ahorran tiempo

Contar fallos por proxy y saltarse a los reincidentes es lo que convierte una lista en bruto en un pool usable; sin eso sigues pagando el timeout de las mismas entradas muertas. Refresca el fichero al ritmo de publicación y reinicia el contador al hacerlo. Para cargas de producción donde no puedes absorber esta tasa de fallo, un endpoint rotativo mantenido es la herramienta adecuada.

Guías relacionadas

Límites de la instantánea pública
Los proxies públicos gratuitos son compartidos y los operan terceros desconocidos. Nunca envíes contraseñas, tokens ni datos personales a través de ellos. Cumple las políticas de uso aceptable de GitHub: nada de spam, ataques, elusión de controles de acceso ni scraping contrario a las políticas del sitio.