Free Proxy Health List

실시간 스냅샷 · 3,287 proxies

로테이팅 프록시 풀 만들기

상태 추적이 들어간 실용적인 순환 로직을 약 20줄로.

로테이팅 프록시 풀 만들기

1. 실패 추적이 있는 순환

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

시간을 아껴 주는 참고 사항

프록시별 실패 횟수를 세고 반복 실패자를 건너뛰는 것이 원시 목록을 쓸 만한 풀로 바꾸는 핵심입니다. 그렇지 않으면 같은 죽은 항목의 타임아웃을 계속 치릅니다. 게시 주기에 맞춰 파일을 갱신하고 그때 카운터도 초기화하세요. 이 실패율을 감당할 수 없는 운영 환경이라면 관리되는 로테이션 엔드포인트가 더 나은 도구입니다.

관련 가이드

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