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

0 投票
1 回答
586 浏览
提问于 2025-04-15 16:01

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

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

但是在第一次设置代理之后,它就一直保持这个状态,不会再改变。这段代码有问题:

    # 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

我现在真的很困惑。

谢谢你的时间。

补充说明:我家IP地址响应的脚本只是一个PHP,输出的是 $_SERVER['REMOTE_ADDR']。

1 个回答

1

这听起来确实有点奇怪。我一直觉得 httplib2 这个模块是最简单的 Python HTTP 客户端,使用起来很方便。这里有一个关于 如何将 httplib2 和 socks 模块结合使用 的例子。

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

撰写回答