ProxyHealthList

Início / Casos de uso / Scrapy

Proxies grátis para Scrapy

O Scrapy tem suporte a proxy embutido com request.meta['proxy']. Combine com uma lista gratuita verificada a cada hora e um pequeno middleware de rotação.

Lista HTTP (TXT) Lista completa (JSON)

Middleware de proxy rotativo

Coloque este middleware no seu projeto e habilite-o em settings.py. Ele carrega a lista verificada uma vez, atribui um proxy aleatório por requisição e repete com outro quando um proxy falha.

# middlewares.py
import random, requests

class VerifiedProxyMiddleware:
    LIST = "https://raw.githubusercontent.com/xyzs996/free-proxy-health-list/main/proxies/protocols/http/data.txt"

    def __init__(self):
        txt = requests.get(self.LIST, timeout=15).text
        self.proxies = [f"http://{l.strip()}" for l in txt.splitlines() if l.strip()]

    def process_request(self, request, spider):
        request.meta["proxy"] = random.choice(self.proxies)

    def process_exception(self, request, exception, spider):
        request.meta["proxy"] = random.choice(self.proxies)
        return request
# settings.py
DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.VerifiedProxyMiddleware": 350,
    "scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 400,
}
RETRY_ENABLED = True
RETRY_TIMES = 5
DOWNLOAD_TIMEOUT = 15
DOWNLOAD_DELAY = 1.0

Dicas

Proxies gratuitos são instáveis: mantenha RETRY_ENABLED e dê um RETRY_TIMES generoso. Comece pelo subconjunto rápido e recarregue a lista entre coletas longas. Respeite sempre o robots.txt.

Perguntas frequentes

Como coloco um proxy no Scrapy?

Defina request.meta['proxy'] = 'http://host:port', ou exporte http_proxy.

O Scrapy suporta SOCKS5?

O middleware padrão lida com HTTP; para SOCKS você precisa de um handler externo.

De onde vem a lista?

Baixe a lista verificada em TXT ou JSON do CDN; é reverificada a cada hora.

Relacionado