我在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
我现在真的很困惑。
谢谢你的时间。
补充说明:我家IP地址响应的脚本只是一个PHP,输出的是 $_SERVER['REMOTE_ADDR']。
1 个回答
1
这听起来确实有点奇怪。我一直觉得 httplib2 这个模块是最简单的 Python HTTP 客户端,使用起来很方便。这里有一个关于 如何将 httplib2 和 socks 模块结合使用 的例子。
抱歉,我知道这不是你问题的具体答案,但这可能是一个可以尝试的解决办法。