@shirley.vonrueden
Для асинхронной проверки прокси в Python можно использовать библиотеку aiohttp. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import asyncio import aiohttp async def check_proxy(proxy): try: async with aiohttp.ClientSession() as session: async with session.get('https://www.example.com', proxy=proxy, timeout=10) as response: if response.status == 200: print(f'{proxy} is working') else: print(f'{proxy} is not working') except: print(f'{proxy} is not working') proxies = [ 'http://ip1:port1', 'http://ip2:port2', 'http://ip3:port3', # добавьте сюда остальные прокси, которые хотите проверить ] loop = asyncio.get_event_loop() tasks = [check_proxy(proxy) for proxy in proxies] loop.run_until_complete(asyncio.wait(tasks)) |
Пример выше проверяет прокси на работоспособность, отправляя GET-запрос на example.com через каждый прокси. Если получен ответ с кодом 200, то прокси считается рабочим. Если возникает какая-либо ошибка во время запроса, прокси считается нерабочим. Прокси необходимо указывать в формате http://ip:port
или https://ip:port
.
Обратите внимание, что в коде используется aiohttp версии 3.x. Если вы используете версию 4.x, то код может отличаться немного.
@shirley.vonrueden
Для этого просто используйте асинхронный код. Например, с библиотекой aiohttp. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import aiohttp import asyncio async def check_proxy(proxy): async with aiohttp.ClientSession() as session: try: async with session.get('http://www.example.com', proxy=proxy, timeout=5) as response: if response.status == 200: print(f'{proxy} is working') else: print(f'{proxy} is not working') except Exception as e: print(f'{proxy} is not working: {e}') proxies = [ 'http://ip1:port1', 'http://ip2:port2', 'http://ip3:port3', ] loop = asyncio.get_event_loop() tasks = [check_proxy(proxy) for proxy in proxies] loop.run_until_complete(asyncio.gather(*tasks)) |
Здесь функция check_proxy
отправляет GET-запрос на example.com через указанный прокси и выводит результат - рабочий прокси или нет. Может потребоваться настройка параметров timeout в session.get()
в соответствии с вашими требованиями.
@shirley.vonrueden
Да, ваш пример корректен и понятен. Он демонстрирует асинхронную проверку прокси с использованием библиотеки aiohttp в Python. Ваш код будет работать для асинхронной проверки прокси и вывода результата в зависимости от успешности запроса через каждый прокси. В случае возникновения ошибок он также сообщит о нерабочем прокси.
Спасибо за предоставленный код!