Найти - Пользователи
Полная версия: [Python 3] ssl.SSLError: [Errno 1]
Начало » Python для экспертов » [Python 3] ssl.SSLError: [Errno 1]
1
FanOfGun
Есть такой вот код:
class TcpClient:
   ...
    def startTLS(self):
        self._s=ssl.wrap_socket(self._s)
    def send(self, data):
        if isinstance(data,str):
            data=data.encode()
        self._s.send(data)
    def recv(self):
        return self._s.recv(self.msglen)
    ....
Использую его так:
def get(self, url, proxy=None):
        host=url.replace("http://","").replace("https://","").split("/")[0]
        prot=url[:5].replace(":","")
        path=url.replace(prot+"//"+host,"")
        #на код выше прошу не обращать внимания, он только для того, что бы понимать чтои откуда, позже будет заменен на что-то более вменяемое
        s=TcpClient()
        s.connect(host,80,proxy)
        if prot=="https":
            s.startTLS()
        s.send("GET %s HTTP/1.0" % path)
        s.send(self._hdrs2str()+b"\r\n"+self._cooks2str())
        s.send("\r\n\r\n")
Код рабочий(т.е. c http проблем нет), но при переходе на https возникает следующая ошибка:
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    headers, page=br.get("https://www.google.com.ua/")
  File "***\webclient.py", line 87, in get
    s.startTLS()
  File "***\webclient.py", line 25, in startTLS
    self._s=ssl.wrap_socket(self._s)
  File "C:\Python32\lib\ssl.py", line 521, in wrap_socket
    ciphers=ciphers)
  File "C:\Python32\lib\ssl.py", line 276, in __init__
    raise x
  File "C:\Python32\lib\ssl.py", line 272, in __init__
    self.do_handshake()
  File "C:\Python32\lib\ssl.py", line 451, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [Errno 1] _ssl.c:392: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Как этого избежать? Заранее благодарен.
lorien
> Как этого избежать? Заранее благодарен.
Если возможно, использовать, например, pycurl.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB