@Liofan Для реализации асинхронных запросов к серверу с разных IP-адресов на Python вы можете использовать библиотеки asyncio и aiohttp. asyncio позволяет работать с асинхронным кодом, а aiohttp предоставляет средства для выполнения асинхронных HTTP-запросов.
Вот пример кода на Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import aiohttp import asyncio import random async def fetch(url): user_agents = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko", # Добавьте другие user agents по желанию ] headers = {'User-Agent': random.choice(user_agents)} # Вам также понадобится список с различными IP-адресами ip_addresses = [ "IP адрес 1", "IP адрес 2", # Добавьте другие IP-адреса по желанию ] async with aiohttp.ClientSession(headers=headers) as session: # Выберите случайный IP-адрес из списка ip_address = random.choice(ip_addresses) # Используйте параметр "local_addr", чтобы указать IP-адрес для исходящих соединений connector = aiohttp.TCPConnector(local_addr=(ip_address, 0)) async with session.get(url, connector=connector) as response: return await response.text() async def main(): urls = [ "URL 1", "URL 2", "URL 3", # Добавьте остальные ссылки из вашего списка ] tasks = [fetch(url) for url in urls] # Запускаем все задачи асинхронно в несколько потоков responses = await asyncio.gather(*tasks) # Обрабатываем полученные ответы for response in responses: print(response) if __name__ == "__main__": asyncio.run(main()) |