Python 我在urllib2上设置了一个代理服务器,然后我就可以';我不能改变它

Python 我在urllib2上设置了一个代理服务器,然后我就可以';我不能改变它,python,proxy,urllib2,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:/

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

设置代理,测试代理,做一些很酷的事情

但是,在第一次设置代理之后,它会一直保持不变。这是失败的代码:

    # 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回显$_服务器['REMOTE\u ADDR']。

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


对不起,我知道这不是你问题的具体答案,但这可能是一个可以尝试的解决办法。

你说得对,这不具体,但非常有用。我已经用httplib2替换了所有的urllib2代码(无论如何,要修改的代码并不多),并且我已经减少了相当多的HTTP处理代码,更不用说httplib2更美观了。谢谢。只是为了表示同情——urllib和urllib2让我发疯。