Python urllib2代理设置问题

2024-04-26 23:21:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经看过其他一些关于这个的文章,我希望我没有重复,但我被困在一个真正的头饰,设置了一个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地址显示出来。当我通过系统设置手动设置代理时,我确实得到了不同的响应,因此我已经确认它不是代理条件本身的问题。

任何能提供的帮助都将不胜感激!


Tags: authhttp代理stringserverportsiteuri
2条回答

好吧,这有点傻,但我尝试了另一个例子,我的连接现在运行良好。在

    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而不是Proxy,因为我有一个明显的解决方案,我不太担心,但是我仍然有兴趣知道我为什么会有这个问题。在

您的问题将代理URL设置为

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

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

相关问题 更多 >