首页 文章

代理背后的Python请求

提问于
浏览
1

我是企业代理(Isa Server)的幕后推手 .

当使用urllib2时,我可以通过代理连接到互联网,没有任何问题,但在使用请求库时我不能 .

这是我的urllib2代码:

proxy = urllib2.ProxyHandler({})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)

page = urllib2.urlopen('http://www.google.com')
print page.getcode()

这打印'200'并且工作正常

但是,当对请求执行相同操作时,我得到407代码并且不起作用 .

proxy_dict = {
    'http': 'http://10.20.23.5:8080',
    'https': 'ftp://10.20.23.5:8080',
    'ftp': 'https://10.20.23.5:8080'
}

page = requests.get('http://www.google.com', proxies=proxy_dict)
print page.status_code
print page.reason

这打印'407',原因是:'需要代理身份验证(Forefront TMG需要授权才能完成请求 . 拒绝访问Web代理过滤器 . )'

即使我传递给请求urllib2的代理也不起作用:

page = requests.get('http://http://www.google.com', proxies=urllib2.getproxies())

Urllib2正在做一些请求不是 .

有帮助吗?

1 回答

  • 0

    如果您的代理需要身份验证,则需要设置这些变量:

    proxy_dict = {
        'http': 'http://username:password@10.20.23.5:8080',
        'https': 'https://username:password@10.20.23.5:8080',
        'ftp': 'ftp://username:password@10.20.23.5:8080'
    }
    

相关问题