python 3.2 проверяю прокси urllib-ом:
request = urllib.request.Request(url)
request.add_header('User-Agent',
'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20190824 Firefox/3.5.3')
opener = urllib.request.build_opener(urllib.request.ProxyHandler({'https': '213.111.252.230:8000'}))
urllib.request.install_opener(opener)
try:
res = urllib.request.urlopen(request,
timeout=3)
except HTTPError as e:
self.log('сервер вернул ошибку: %s' % e.code, '!')
return False
except URLError as e:
self.log('не могу скачать страницу: %s' % e.reason, '!')
return False
except Exception as e:
self.log('ошибка: %s' % e, '!')
else:
headers = res.getheaders()
encoding = self.parent.http._get_encoding(headers)
try:
data = res.read().decode(encoding, 'ignore')
except Exception as e:
self.log('ошибка http.read().decode(): %s' % e, '!')
return False
и собственно, на чем все виснет:
проверяем 213.111.252.230:8000, тип 0
[!] ошибка: <urlopen error [Errno 111] В соединении отказано>
проверяем 213.111.252.230:8000, тип 1
[!] ошибка: <urlopen error timed out>
* тут виснет на минуту *
проверяем 213.111.252.230:8000, тип 2
[!] ошибка: <urlopen error [Errno 110] Время ожидания соединения истекло>
* и тут продолжает тупить *
на запросах меняется тип - 0,1,2 - это типы хэндлеров прокси 0 - urllib.request.ProxyHandler 1 - socks5 - proxiPy 2 - https - proxiPy
но тип прокси ничего не меняет несмотря на то, что timeout = 3 сек. — тупит все равно бесконечно долго
и ещё, что интересно, перед запросом ставлю HTTPConnection.debuglevel = 2 но отладочной информации в логе не выводится