2009-07-20 4 views
3

기존 스크립트에 인증 프록시 지원을 추가하려고합니다. 스크립트가 https url (urllib2.Request 및 urllib2.urlopen)에 연결되어 페이지를 긁어 내고 발견 한 내용에 따라 일부 작업을 수행합니다. . 처음에는 urllib2.ProxyHandler ({ "http": MY_PROXY})를 urllib2.build_opener에 arg로 추가하여 urllib2.install_opener에 전달하는 것만 큼 쉽기를 바랬습니다. 불행히도 이것은 urllib2.Request (ANY_HTTPS_PAGE)를 시도 할 때 작동하지 않는 것처럼 보입니다. 인터넷 검색은 파이썬 2.5에서 urllib2의 프록시 지원이 https URL을 지원하지 않는다고 믿습니다. 이것은 나를 가장 놀랍다.urllib2와 함께 인증 프록시를 통해 https 페이지를 가져올 수 있습니까?

예를 http://bugs.python.org/issue1424152을 위해 (: urllib2.URLError: <urlopen error (1, 'error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol')> 나는 그것을 시도 할 때 문제가 나는 다음과 같은 오류를 대신 얻을 시작) urllib2하고 문제를 해결하는 취지 httplib에 대한 패치를 포함, 웹 주위에 떠 솔루션이있을 나타납니다. 여기에 시도 할 요리 책 요리법은 http://code.activestate.com/recipes/456195입니다. 나는 이것이 명백한 솔루션을 놓치고 있는지 궁금하게 생각하는 "out of the box"를 지원하지 않는다는 것에 놀랍지 만, 간단히 말해서 https 페이지를 가져 오는 간단한 방법이 있습니다. 파이썬 2.5에서 urllib2와 함께 인증 프록시 사용하기? 이상적으로이 작동합니다 :

import urllib2 
#perhaps the dictionary below needs a corresponding "https" entry? 
#That doesn't seem to work out of the box. 
proxy_handler = urllib2.ProxyHandler({"http": "http://user:[email protected]:port"}) 
urllib2.install_opener(urllib2.build_opener(urllib2.HTTPHandler, 
               urllib2.HTTPSHandler, 
               proxy_handler)) 
request = urllib2.Request(A_HTTPS_URL) 
response = urllib2.urlopen(request) 
print response.read() 

많은 감사

답변

1

을 당신은 httplib2을 조사 할 수 있습니다. socks 모듈이 설치된 경우 examples 중 하나가 SOCKS 프록시를 지원합니다.

관련 문제