import mechanicalsoup
import requests

session = requests.Session()
session.trust_env = False
session.proxies.update({
    "http": "http://proxy.example.net:8080",
    "https": "http://proxy.example.net:8080",
})

browser = mechanicalsoup.StatefulBrowser(session=session)

폼 페이지를 열기 전에 엔드포인트를 선택합니다. 공용 프록시가 허용되는 공개 폼이라면 HTTP 프록시 목록의 후보를 쓸 수 있습니다. 세션을 만들고 표시된 대로 StatefulBrowser에 전달합니다. 같은 브라우저를 open, 폼 선택, submit_selected에 사용하고 워크플로가 끝나면 browser.close()로 닫습니다.

이렇게 하면 프록시 정책과 쿠키 상태가 전체 교환에 사용되는 세션에 유지됩니다. 한 번의 초기 요청에 준 proxies 인자는 이후 제출을 자동으로 구성하지 않습니다.

trust_env = False 은 이 예제의 경로를 Requests의 환경 프록시 설정과 무관하게 만듭니다. 환경에서 CA 번들을 선택하는 것과 .netrc 인증도 비활성화합니다. 워크플로에 필요하면 명시적으로 제공하고, 다른 정책을 고를 때는 환경을 고려하세요.

관련 글