프록시 파일은 풀이지 Requests 라우팅 테이블이 아니다
인증된 프록시 목록 항목을 프록시 주소를 목적지 라우팅 키로 쓰지 않고 선택한 엔드포인트로 변환합니다.
파일에서 프록시 하나를 고른 다음 사이트 요청용 경로 맵을 구성합니다. 후보 엔드포인트의 풀은 그 자체로 Requests의 라우팅 사전이 아닙니다.
- 정해진 형식에 따라 항목을 파싱합니다. 비공식
IP:port:user:password줄은 IPv6 주소나 자격 증명에 콜론이 들어가면 모호해집니다. IPv4 호스트, 숫자 포트, 콜론이 없는 사용자 이름이라면 제한적으로 나눌 때 남은 텍스트를 비밀번호로 둘 수 있습니다. 이런 제한이 맞지 않으면 별도의 구조화된 필드를 사용하세요. - 이 작업에 사용할 엔드포인트를 고릅니다. 실제 프로토콜을 유지하고 URL을 만들 때 자격 증명 구성 요소를 인코딩합니다. 비밀을 담은 그 값은 일반 로그에 남기지 마세요.
- 목적지 스킴을 그 선택한 URL에 매핑합니다. 선택한 HTTP 프록시 하나에 대해 맵은 다음과 같을 수 있습니다.
routes = {
'http': selected_proxy_url,
'https': selected_proxy_url,
}http 와 https 키는 목적지 스킴을 선택합니다. http://203.0.113.10 같은 키는 대신 바로 그 목적지 호스트로 가는 요청을 선택합니다. 그 주소의 프록시에 이름표를 붙이는 것이 아닙니다. 모든 프록시 IP를 키로 쓰면 무관한 사이트가 의도한 경로를 잃을 수 있습니다.
풀을 한 번 파싱하고 엔드포인트를 고른 뒤 클라이언트 호출용 매핑을 만듭니다. 이 단계를 분리해 두면 Requests의 라우팅 키 의미를 바꾸지 않고 선택 정책을 바꿀 수 있습니다.