Решение проблемы SSL: WRONG_VERSION_NUMBER - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь создать программу с использованием asyncio и aiohttp для проверки определенных функций моего сайта, таких как заполнение форм и сбор файлов cookie. Я тестирую его с использованием прокси-серверов и просто заставляю его посещать мою страницу и проверять, есть ли что-то, что я поместил в HTML, но я продолжаю получать ошибки, такие как:

15:01:29.600 SSL error in data received
protocol: <asyncio.sslproto.SSLProtocol object at 0x0873A0B0>
transport: <_SelectorSocketTransport fd=1492 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "C:\Users\x\AppData\Local\Programs\Python\Python37-32\lib\asyncio\sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "C:\Users\x\AppData\Local\Programs\Python\Python37-32\lib\asyncio\sslproto.py", line 207, in feed_ssldata
    self._sslobj.unwrap()
  File "C:\Users\x\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", line 767, in unwrap
    return self._sslobj.shutdown()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:2609)

Это происходит не с каждым экземпляром, который я запускаю, но с большинством из них. Вот мой код

import asyncio
import ClientSession from aiohttp

def main():
    tasks = []
    loop = asyncio.get_event_loop()
    for i in range(10):
        task = asyncio.ensure_future(launch(url, ip, port))
        tasks.append(task)
    loop.run_until_complete(asyncio.wait(tasks))


async def launch(url, ip, port):
    done = False
    proxy = "http://{}:{}".format(ip, port)
    async with ClientSession() as session:
        while not done:
            async with session.get(url, timeout=40, proxy=proxy) as initial:
                html_text = await initial.text()
                if x in html_text:
                    done = True
                else:
                    asyncio.sleep(60)
        await session.close()

if __name__ == "__main__":
    main()

Прокси являются только HTTP прокси.

Если бы кто-нибудь мог помочь мне решить эту проблему, это было бы очень полезно, спасибо.

РЕДАКТИРОВАТЬ: Мой сайт HTTPS, если это имеет значение.

РЕДАКТИРОВАТЬ2: Для большей ясности, они все немного работают и продолжают обновляться, но потом все просто начинают умирать один за другим

РЕДАКТИРОВАТЬ3: После печати всех ошибок, я также получаю эту ошибку:

Cannot connect to host domain:[prt ssl:None [Connect call failed ('IP', Port)]

...