我在urllib2上设置了代理服务器,然后我无法更改它

时间:2009-11-14 22:36:53

标签: python proxy urllib2

就像标题所说,我的代码基本上是这样做的:

设置代理,测试代理,做一些很酷的东西

但是第一次设置代理后,它会坚持这种方式,永远不会改变。这是失败的代码:

    # Pick proxy
    r = random.randint(0, len(proxies) - 1)
    proxy = proxies[r]
    print proxy

    # Setup proxy
    l_proxy_support = urllib2.ProxyHandler({"http": "http://{0}:{1}".format(*proxy)})
    l_opener = urllib2.build_opener(l_proxy_support)

    try:
        l_req = l_opener.open(
            urllib2.Request('http://[MYIPADDRESSHERE]/ip.php', None, agent)
        )
        print l_req.read()
    except urllib2.URLError:
        print "Proxy not functioning, aborting..."

    # Do cool stuff here, not really relevant

输出最终为:

['X.Y.Z.124', '666', 'http']
[Skarlet] Your IP address is: X.Y.Z.124
['X2.Y2.Z2.190', '666', 'http']
[Skarlet] Your IP address is: X.Y.Z.124
['X3.Y3.Z3.41', '666', 'http']
[Skarlet] Your IP address is: X.Y.Z.124

我现在真的很困惑。

感谢您的时间。

PD:从我的家庭IP地址响应的脚本只是一个PHP回显$ _SERVER ['REMOTE_ADDR']。

1 个答案:

答案 0 :(得分:1)

这看起来很奇怪。我总是发现httplib2模块是最容易使用的Python HTTP客户端。有一个使用httplib2 with the socks module的例子。

抱歉,我知道这不是您问题的具体答案,但尝试可能是一种解决方法。