How to handle proxies in urllib3

纵然是瞬间 提交于 2020-02-14 05:45:34

问题


I am having trouble finding solid examples of how to build a simple script in urllib3 which opens a url (via a proxy), then reads it and finally prints it. The proxy requires a user/pass to authenticate however it's not clear to me how you do this? Any help would be appreciated.


回答1:


urllib3 has a ProxyManager component which you can use. You'll need to build headers for the Basic Auth component, you can either do that manually or use the make_headers helper in urllib3.

All together, it would look something like this:

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/')



回答2:


I believe the correct answer to this should be

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/')

(note: proxy_basic_auth, not basic_auth)

I was trying this with basic_auth in my environment without any luck. shazow you committed this comment to git which pointed me in the right direction



来源:https://stackoverflow.com/questions/31151615/how-to-handle-proxies-in-urllib3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!