urllib2不会使用代理更改IP

时间:2016-01-19 09:56:42

标签: python proxy ip urllib2 urllib

我创建了一个小代码来测试当我连接到代理服务器时我的IP是否已更改。但知识产权并没有改变。我的问题是什么?

from helpers import GetProxyList
import urllib2

proxyList = GetProxyList()
my_ip = urllib2.urlopen('http://icanhazip.com/').read()
print(my_ip)

for proxy in proxyList:
    #proxyObj = urllib2.ProxyHandler({'https':'https://'+proxy+'/'})
    proxy_url = 'http://'+proxy+'/'
    proxy_url_https = 'https://'+proxy+'/'
    #proxy_handler = urllib2.ProxyHandler({'http': proxy_url, 'https':proxy_url_https})
    proxy_handler = urllib2.ProxyHandler({'https': proxy_url_https})

    opener = urllib2.build_opener(proxy_handler, urllib2.HTTPHandler)
    urllib2.install_opener(opener)
    new_ip = urllib2.urlopen('http://icanhazip.com/').read()
    print(new_ip)

我已经以各种方式尝试过,正如您在评论中看到的那样。 即使使用urllib,但它也不起作用。

GetProxyList()函数返回http://www.workingproxies.org/的代理列表。也许你可以用前两个实体来测试它。

我提前感谢您提供有用的答案。

1 个答案:

答案 0 :(得分:0)

我认为你的问题就在这一行:

opener = urllib2.build_opener(proxy_handler, urllib2.HTTPHandler)

您应该将其更改为:

proxy_handler = urllib2.ProxyHandler({'http': proxy_url})
opener = urllib2.build_opener(proxy_handler)

如果您仍然无法找到路线,则可能需要检查DNS设置。 有关build_opener的更多信息,请参阅here。 有关如何修复未找到路线的信息,请herehere