使用urllib2从公司防火墙后面打开网站 - 11004 getaddrinfo失败

Ayy*_*Das 6 python firewall urllib2

我试图通过以下方式从公司防火墙后面访问一个网站: -

password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, url, username, password)
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(auth_handler) 
urllib2.install_opener(opener) 
conn = urllib2.urlopen('http://python.org')
Run Code Online (Sandbox Code Playgroud)

得到错误

URLError: <urlopen error [Errno 11004] getaddrinfo failed>
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的处理程序(尝试使用稍微不同的ProxyHandler方式),但似乎没有用.

任何可能导致错误的原因的线索以及提供凭据并使其工作的任何不同方式?

Sen*_*ran 5

如果您使用的是Proxy,并且该代理具有用户名和密码(许多公司代理都有),则需要使用urllib2设置代理处理程序.

  proxy_url = 'http://' + proxy_user + ':' + proxy_password + '@' + proxy_ip
  proxy_support = urllib2.ProxyHandler({"http":proxy_url})
  opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
  urllib2.install_opener(opener)
Run Code Online (Sandbox Code Playgroud)

HTTPBasicAuthHandler用于为您要访问的站点提供凭据,而不是通过代理.以上代码段可能会对您有所帮助.