如何处理urllib3中的代理

时间:2015-07-01 02:23:56

标签: python proxy urllib3

我无法找到如何在urllib3中构建一个简单脚本的实例,它打开一个url(通过代理),然后读取它并最终打印出来。代理需要用户/通行证进行身份验证,但是我不清楚你是如何做到这一点的?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:6)

urllib3有一个ProxyManager组件,您可以使用它。您需要为Basic Auth组件构建标头,您可以手动执行此操作,也可以使用urllib3中的make_headers帮助程序。

总之,它看起来像这样:

from urllib3 import ProxyManager, make_headers

default_headers = make_headers(proxy_basic_auth='myusername:mypassword')
http = ProxyManager("https://myproxy.com:8080/", headers=default_headers)

# Now you can use `http` as you would a normal PoolManager
r = http.request('GET', 'https://stackoverflow.com/')

答案 1 :(得分:4)

我相信对此的正确答案应该是

from urllib3 import ProxyManager, make_headers

default_headers = make_headers(proxy_basic_auth='myusername:mypassword')
http = ProxyManager("https://myproxy.com:8080/", headers=default_headers)

# Now you can use `http` as you would a normal PoolManager
r = http.request('GET', 'https://stackoverflow.com/')

(注意:proxy_basic_auth,而不是basic_auth)

我在我的环境中尝试使用basic_auth而没有任何运气。 shazow you committed this comment to git which pointed me in the right direction