14

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

4

2 回答 2

13

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

总之,它看起来像这样:

from urllib3 import ProxyManager, make_headers

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

# Now you can use `http` as you would a normal PoolManager
r = http.request('GET', 'https://stackoverflow.com/')
于 2015-07-01T09:08:13.243 回答
6

我相信这个问题的正确答案应该是

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 你把这条评论提交给了 git,这为我指明了正确的方向

于 2016-11-02T09:23:49.143 回答