아미(아름다운미소)

urllib2 그리고 프록시 본문

랭귀지/PYTHON

urllib2 그리고 프록시

유키공 2017. 12. 19. 16:30

urllib2 프록시를 사용할 있다.

프록시 주소와 포트:
proxy_info = { 'host' : 'proxy.myisp.com',
               'port' : 3128
             }

프록시를 위하여 처리자를 만든다
proxy_support = urllib2.ProxyHandler({"http" : "http://%(host)s:%(port)d" % proxy_info})

 처리자를 사용하는 개방자(opener) 만든다:
opener = urllib2.build_opener(proxy_support)

다음  개방자를 urllib2 위한 기본 개방자로 설치한다:
urllib2.install_opener(opener)

이제 HTTP 요청을 전송할  있다:
htmlpage = urllib2.urlopen("http://sebsauvage.net/").read(200000)


 트릭이 멋진 이유는 전체 프로그램을 위하여 프록시 매개변수들을 설정해 주기 때문이다.


프록시에
 인증이 필요하면역시 그것도   있다!

proxy_info = { 'host' : 'proxy.myisp.com',
               'port' : 3128,
               'user' : 'John Doe',
               'pass' : 'mysecret007'
             }
proxy_support = urllib2.ProxyHandler({"http" : "http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
htmlpage = urllib2.urlopen("http://sebsauvage.net/").read(200000)

( 코드 조각은 주로 http://groups.google.com/groups?selm=mailman.983901970.11969.python-list%40python.org에서 영감을 얻었다. )


파이썬
 2.4.2부터, urllib2 오직 다음의 프록시 인증 방법만 지원한다Basic 그리고 Digest.
프록시가
 (윈도우즈/IE-종속적인NTLM 사용하면운이 따르지 않는 것이다.


 트릭 외에도 간단하게 프록시를 설정하는 방법이 있다:

import os
os.environ['HTTP_PROXY'] = 'http://proxy.myisp.com:3128'


os.environ['FTP_PROXY']
로도 똑같이   있다.

 

Comments