为什么我收到此错误? HTTP错误407:需要代理身份验证

时间:2015-04-23 14:38:06

标签: python proxy urllib2 bots

我使用帖子How to specify an authenticated proxy for a python http connection?

上的以下代码
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..."

我正在使用我的wpad.dat文件中为argv [1]指定的代理ip。 (#为机密性)

return "PROXY 138.84.###.###:####";

我正在使用argval [2]和[3]的用户名和密码。当我使用http://google.com时,它会吐出相应的标题信息。当我使用http://shipcsx.com/pub_sx_mainpagepublic_jct/sx.shipcsxpublic/Main时,它显示:HTTP错误407:需要代理身份验证。

1 个答案:

答案 0 :(得分:0)

这可能不是StackExchange的问题。您可能需要对代理服务器有一些可见性才能正确排除故障。没有其他信息,我会随意猜测Google域(或其中的一部分)被配置为代理中的可信站点。这允许请求完全绕过代理身份验证。