urllib 오프너는 요청을 프록시를 통해 보내면서 동시에 사이트 쿠키를 유지할 수 있습니다. 두 핸들러를 모두 넘기십시오:

from http.cookiejar import CookieJar
from urllib.request import (
    HTTPCookieProcessor, ProxyHandler, build_opener,
)

cookies = CookieJar()
opener = build_opener(
    ProxyHandler({"http": "http://proxy.example:8080"}),
    HTTPCookieProcessor(cookies),
)
with opener.open("http://www.example.com/", timeout=10) as response:
    body = response.read()

예제는 일반 HTTP 대상과 그 명시적 프록시 경로를 사용합니다. 프록시 인증 없이 허용된 공개 사이트를 점검하려면 해당 경로에 대해 HTTP 프록시 목록에서 후보를 고르고 의도한 쿠키 항아리를 유지하십시오. 같은 사이트 세션의 이후 요청에는 opener를 다시 사용하십시오. 쿠키 처리기는 허용 가능한 응답 쿠키를 추출하고 해당되는 것을 다음 요청에 추가합니다.

호출할 때마다 새 빈 CookieJar를 만들면 그 연속성이 사라집니다. 항아리는 그것이 나타내는 세션과 함께 두십시오. 쿠키를 분리해야 하는 계정이나 워크플로에는 별도 항아리를 사용하십시오.

기본 CookieJar는 상태를 메모리에 보관합니다. 프로그램 실행 사이에 유지하려면 적절한 FileCookieJar 하위 클래스를 선택하고 의도적으로 저장하거나 불러오십시오.

이 구성에는 전역 opener를 설치할 필요가 없습니다. 이 객체의 open 메서드를 호출하면 프록시와 쿠키가 같은 작업에 붙어 있게 됩니다.

관련 글