Необходим программист, который имеет опыт опыт работы с такими библиотеками:
aiohttp, asyncio - библиотеки python
Необходимо исправить ошибки в парсере информации с сайта страницы, происходит полное зависание программы при запуске после какого-то кол-ва сессий. Программа производит 100-500 сессий и зависает.
Программа:
1. Программа загружает в себя список ссылок на видео на YouTube.
2. Программа обращается по ссылке к сервису WinGate и берет от туда список прокси.
3. Создается асинхронный генератор IP адресов прокси серверов (используются обычные http прокси).
4. Асинхронный генератор IP адресов предоставляет IP адрес генератору заданий.
5. Генератор заданий генерирует задания(пул заданий с помощью task = asyncio.create_task())
6. Список заданий передаётся в главную функцию на выполнение (с помощью asyncio.gather(*tasks))
7. В случае успеха - html body запроса передаётся функции, которая делает словарь с интересующими параметрами видео и этот словарь добавляется в глобальную переменную, которая сохраняется в конце выполнения программы.
8. В случае исключения - ссылка на видео возвращается функцией (список необработанных ссылок: results = asyncio.gather(*tasks)). results затем передаётся в генератор заданий и цикл выполнения повторяется снова и так до тех пор пока переменная results не станет пустым списком.
Главная проблема:
1. В документации библиотеки aiohttp очень не рекомендуется создавать новую клиентскую сессию для каждого http запроса. Скорее всего это и является причиной фриза программы.
2. Если создать одну клиентскую сессию и с её помощью отправлять запросы - все запросы отклоняются сервером и все ссылки без исключения возвращаются в ранее упомянутую переменную results, которая передаётся в генератор заданий и так до тех пор пока генератор ip-адресов прокси себя не исчерпает.