在python中测试HTTPS代理

Jos*_*itz 6 python https proxy urllib python-2.7

我管理了很多HTTPS代理(那些代理有自己的SSL连接).我正在python中构建一个诊断工具,它试图通过每个代理连接到一个页面,如果它无法通过其中一个代理连接,则给我发电子邮件.

我打算这样做的方法是使用urllib连接每个代理并返回一个页面,该页面应该用下面的代码说"成功".

def fetch(url):
    connection = urllib.urlopen(
    url,
    proxies={'http':"https://"+server+':443'}
    )
    return connection.read()


print fetch(testURL)
Run Code Online (Sandbox Code Playgroud)

这将获取我想要的页面完全问题是它仍然会获取我想要的页面,即使代理服务器信息不正确或代理服务器处于非活动状态.因此要么它从不使用代理服务器,要么它尝试它并在它失败时没有它连接.

我怎么能纠正这个?

编辑:似乎没有人知道如何做到这一点.我将开始阅读其他语言库,看看他们是否能更好地处理它.有没有人知道在Go等其他语言中是否更容易?

编辑:我刚刚在下面的评论中写了这个,但我认为这可能是一个误解."代理有它自己的ssl连接.所以,如果我去google.com,我首先与foo.com进行密钥交换,然后另一个与目的地址bar.com或目的地地址baz.com进行密钥交换目的地不必须是https,代理是https"

Yuv*_*ika 1

我认为它不适用于 https 请求。它是否正确?如果是,那么上面的代码只定义了 http 的代理。尝试添加 https:

proxies={'https':"https://"+server+':443'}

另一种选择是使用requestspython 模块而不是urllib. 看看http://docs.python-requests.org/en/latest/user/advanced/#proxies