Форум сайта python.su
есть валидная хттп-прокси - 222.77.14.55:8088 - через браузер работает хорошо
при попытке скачать через неё myip.yandex.ru, urllib падает на этом:
raise HTTPError((statuscode, statusline[2]))
socks.HTTPError: (502, b'Proxy Error ( The specified Secure Sockets Layer (SSL) port is not allowed. ISA Server is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests. )')
#класс
request = urllib.request.Request(url)
hnds = [urllib.request.HTTPCookieProcessor(self.cookie_jar)]
if self.proxy:
if self.proxy_isSocks:
type = SocksHandler.PROXY_TYPE_SOCKS5
else:
type = SocksHandler.PROXY_TYPE_HTTP
usr = ''
passw = ''
if self.proxy_auth:
usr, passw = self.proxy_auth.split(':')
proxy_hnd = SocksHandler.SocksHandler(type,
self.proxy, int(self.proxy_port), username=usr, password=passw)
hnds.append(proxy_hnd)
opener = urllib.request.build_opener(*hnds) # добавляем хэндлеры cookiejar и sockshandler
response = opener.open(request, timeout=5)
#вызов
http.set_proxy('222.77.14.55:8088', 'http')
res = http.get('http://myip.yandex.ru')
Офлайн
народ, для меня это очень важно
готов заплатить за помощь в решении - пишите в ПМ
Офлайн
Я использую urllib2 примерно так:
import urllib2
req = urllib2.Request("http://www.python.org/")
req.set_proxy('60.171.37.134:8080', 'http')
print urllib2.urlopen(req, timeout=115).read()
Офлайн
вроде разобрался
socksipy использует метод Connect, а его поддерживают только https-прокси
Офлайн