Python urllib2代理设置问题

时间:2016-08-27 21:46:05

标签: python proxy urllib2

我已经查看了其他一些帖子,我希望我不会重复,但是我被困在一个真正的headscratcher为urllib2设置代理服务器。我正在运行以下内容:

    file, site = argv
    uri = 'https://'+site
    http_proxy_server = "http://newyork.wonderproxy.com"
    http_proxy_port = "11001"
    http_proxy_user = "user"
    http_proxy_passwd = "password"

    http_proxy_full_auth_string = "http://%s:%s@%s:%s" % (http_proxy_user,
                                                          http_proxy_passwd,
                                                          http_proxy_server,
                                                          http_proxy_port)

    proxy_handler = urllib2.ProxyHandler({"http": http_proxy_full_auth_string})
    opener = urllib2.build_opener(proxy_handler)
    urllib2.install_opener(opener)
    html = opener.open(uri).read()
    print html, 'it opened!'

我正在针对IP信息站点运行此操作,但请尽量使用我的非代理IP地址来响应。当我通过系统设置手动设置我的代理时,我得到了不同的响应,所以我已经确认它不是代理标准本身的问题。

非常感谢任何可以提供的帮助!

2 个答案:

答案 0 :(得分:0)

嗯这有点傻,但我尝试了另一个例子,我的连接现在正常工作。

    import urllib2

    proxlist= ['minneapolis.wonderproxy.com', 'newyork.wonderproxy.com']
    ports = [0,1,2,3]
    for prox in proxlist:
        for port in ports:
            proxy = urllib2.ProxyHandler({'http': 'http://user:password@%s:1100%s'%(prox,port)})
            auth = urllib2.HTTPBasicAuthHandler()
            opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
            urllib2.install_opener(opener)
            try: 
                conn = urllib2.urlopen('http://www.howtofindmyipaddress.com/')
                return_str = conn.read()
                str_find = '<span style="font-size: 80px; color: #22BB22; font-family: Calibri,Arial;">'
                strt = return_str.find(str_find)+len(str_find)
                print prox, port, return_str[strt:return_str.find('</span',strt)-1]
            except urllib2.URLError:
                print prox, port, 'That\'s a no go'

唯一的区别是我可以看到第二个使用HTTPHandler而不是代理,因为我有一个明显的解决方案我并不太担心,但是woudl仍然有兴趣知道我为什么首先遇到这个问题

答案 1 :(得分:0)

您的问题将代理网址设置为

http://user:password@http://newyork.wonderproxy.com:11001

无效。如果您将http_proxy_server更改为newyork.wonderproxy.com,那么您的第一个解决方案可能会更好。