본문 바로가기
파이썬

파이썬 Python '요청'모듈이있는 프록시

by º기록 2020. 9. 22.
반응형


문서에서 변수 '프록시'에 포함되어야하는 내용을 찾을 수없는 것 같습니다. 표준 "IP : PORT"값으로 dict를 보내면 2 개의 값을 요구하는 것을 거부했습니다. 그래서, (문서에서 다루지 않는 것처럼 보이기 때문에) 첫 번째 값은 ip이고 두 번째 값은 포트입니까?

문서에서는 다음 사항 만 언급합니다.

proxies – (선택 사항) 프록시의 URL에 대한 사전 매핑 프로토콜입니다.

그래서 이걸 해봤는데 ... 어떡해?

proxy = { ip: port}

딕셔너리에 넣기 전에 이것을 어떤 타입으로 변환해야합니까?

r = requests.get(url,headers=headers,proxies=proxy)

 

해결 방법

 

proxies 'dict 구문은 { "protocol": "ip : port", ...} 입니다. 이를 통해 http , https ftp 프로토콜을 사용하는 요청에 대해 서로 다른 (또는 동일한) 프록시를 지정할 수 있습니다.

http_proxy  = "http://10.10.1.10:3128"
https_proxy = "https://10.10.1.11:1080"
ftp_proxy   = "ftp://10.10.1.10:3128"

proxyDict = { 
              "http"  : http_proxy, 
              "https" : https_proxy, 
              "ftp"   : ftp_proxy
            }

r = requests.get(url, headers=headers, proxies=proxyDict)


매개 변수 :
method – method for the new Request object.
url – URL for the new Request object.
...
proxies – (optional) Dictionary mapping protocol to the URL of the proxy.
...

Linux에서는 HTTP_PROXY , HTTPS_PROXY FTP_PROXY 환경 변수를 통해서도이 작업을 수행 할 수 있습니다.

export HTTP_PROXY=10.10.1.10:3128
export HTTPS_PROXY=10.10.1.11:1080
export FTP_PROXY=10.10.1.10:3128

Windows의 경우 :

set http_proxy=10.10.1.10:3128
set https_proxy=10.10.1.11:1080
set ftp_proxy=10.10.1.10:3128

이 점을 지적 해 주셔서 감사합니다.
The syntax changed with requests 2.0.0.


 

참조 페이지 https://stackoverflow.com/questions/8287628

 

 

반응형

댓글