을 지정하는 방법은 인증된 프록시를 위한 파이썬 http 연결?

StackOverflow https://stackoverflow.com/questions/34079

  •  09-06-2019
  •  | 
  •  

문제

최선의 방법은 무엇일을 지정하는 프록시 사용자 이름과 암호를 사용하는 http 연결에서 python?

도움이 되었습니까?

해결책

이것을 사용:

import requests

proxies = {"http":"http://username:password@proxy_ip:proxy_port"}

r = requests.get("http://www.example.com/", proxies=proxies)

print(r.content)

나는 생각보다 훨씬 간단을 사용하여 urllib.난 이해하지 못하는 사람들이 왜 사랑하는 사용 urllib 니다.

다른 팁

이것이 나를 위해:

import urllib2

proxy = urllib2.ProxyHandler({'http': 'http://
username:password@proxyurl:proxyport'})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
urllib2.install_opener(opener)

conn = urllib2.urlopen('http://python.org')
return_str = conn.read()

설정하는 환경 var 이름 http_proxy 다음과 같다: http://username:password@proxy_url:port

는 가장 좋은 방법이 가는 프록시를 통해 필요한 인증을 사용하여 urllib2 를 구축하는 사용자 정의 url 을 오프너,다음 사용하는 모든 요청 당신이 가고 싶은 프록시를 통해.참고 특히,당신은 아마 당신을 원하지 않을 포함하는 프록시 비밀번호에 url 또는 파이썬 소스 코드(아니면 그냥 빠른 해킹).

import urllib2

def get_proxy_opener(proxyurl, proxyuser, proxypass, proxyscheme="http"):
    password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
    password_mgr.add_password(None, proxyurl, proxyuser, proxypass)

    proxy_handler = urllib2.ProxyHandler({proxyscheme: proxyurl})
    proxy_auth_handler = urllib2.ProxyBasicAuthHandler(password_mgr)

    return urllib2.build_opener(proxy_handler, proxy_auth_handler)

if __name__ == "__main__":
    import sys
    if len(sys.argv) > 4:
        url_opener = get_proxy_opener(*sys.argv[1:4])
        for url in sys.argv[4:]:
            print url_opener.open(url).headers
    else:
        print "Usage:", sys.argv[0], "proxy user pass fetchurls..."

더 복잡한 프로그램,할 수 있는 별도의 이러한 구성품으로 적절한(예를 들어,만 중 하나를 사용하여 암호 관리자의 일생을 위한 응용 프로그램).Python 문서 더 많은 예제에서 어떻게 복잡한 것으로 urllib2 을 수도 있습니다.

거나 설치하려는 경우에 그것은,그래서 그것은 항상 사용 urllib2.urlopen(그래서 당신은 필요하지 않을 참조하여 개막전위):

import urllib2
url = 'www.proxyurl.com'
username = 'user'
password = 'pass'
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# None, with the "WithDefaultRealm" password manager means
# that the user/pass will be used for any realm (where
# there isn't a more specific match).
password_mgr.add_password(None, url, username, password)
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
print urllib2.urlopen("http://www.example.com/folder/page.html").read()

여기에는 방법이 사용 urllib

import urllib.request

# set up authentication info
authinfo = urllib.request.HTTPBasicAuthHandler()
proxy_support = urllib.request.ProxyHandler({"http" : "http://ahad-haam:3128"})

# build a new opener that adds authentication and caching FTP handlers
opener = urllib.request.build_opener(proxy_support, authinfo,
                                     urllib.request.CacheFTPHandler)

# install it
urllib.request.install_opener(opener)

f = urllib.request.urlopen('http://www.python.org/')
"""
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top