我已经查看了其他一些帖子,我希望我不会重复,但是我被困在一个真正的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地址来响应。当我通过系统设置手动设置我的代理时,我得到了不同的响应,所以我已经确认它不是代理标准本身的问题。
非常感谢任何可以提供的帮助!
答案 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
,那么您的第一个解决方案可能会更好。