Free Proxy Health List

실시간 스냅샷 · 3,287 proxies

Scrapy 프록시 미들웨어

요청마다 교체하고 실패 시 재시도하는, 그대로 꽂아 쓰는 다운로더 미들웨어.

Scrapy 프록시 미들웨어

1. middlewares.py

import itertools, random

class RotatingProxyMiddleware:
    def __init__(self):
        with open("proxies.txt") as handle:
            self.proxies = [line.strip() for line in handle if line.strip()]
        random.shuffle(self.proxies)
        self.pool = itertools.cycle(self.proxies)

    def process_request(self, request, spider):
        request.meta["proxy"] = f"http://{next(self.pool)}"

2. settings.py

DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.RotatingProxyMiddleware": 350,
    "scrapy.downloadermiddlewares.retry.RetryMiddleware": 550,
}
RETRY_TIMES = 5
DOWNLOAD_TIMEOUT = 10

시간을 아껴 주는 참고 사항

순서가 중요합니다. 프록시 미들웨어는 재시도 미들웨어보다 먼저 실행돼야 각 재시도가 실패한 것을 반복하지 않고 새 프록시를 고릅니다. DOWNLOAD_TIMEOUT은 낮게 — 무료 프록시가 파이프라인에서 가장 느린 부분입니다 — 그리고 실패율을 흡수하도록 RETRY_TIMES를 높이세요.

관련 가이드

공개 스냅샷 이용 범위
무료 공개 프록시는 알 수 없는 주체가 운영하며 공유됩니다. 비밀번호, 토큰, 개인정보를 전송하지 마세요. GitHub 이용 정책에 따라 스팸, 공격, 접근 제어 우회, 사이트 정책에 어긋나는 수집에 사용하지 마세요.