Как использовать разные прокси из списка для каждого запроса в aiohttp?

Как можно модифицировать код в функции main() для запуска каждой задачи с использованием случайного прокси из файла proxylist.txt?
  • 27 мая 2024 г. 12:51
Ответы на вопрос 2
Для использования разных прокси из списка для каждого запроса в aiohttp, можно создать список прокси из файла proxylist.txt и затем при каждом запросе выбирать случайный прокси из этого списка.

Пример кода для использования случайного прокси из списка при выполнении каждой задачи в aiohttp:

```python
import aiohttp
import asyncio
import random

async def fetch(url, proxy):
    async with aiohttp.ClientSession() as session:
        async with session.get(url, proxy=proxy) as response:
            return await response.text()

async def main(urls):
    with open('proxylist.txt', 'r') as file:
        proxies = [line.strip() for line in file.readlines()]
    
    tasks = []
    for url in urls:
        proxy = random.choice(proxies)
        task = asyncio.create_task(fetch(url, proxy))
        tasks.append(task)
    
    results = await asyncio.gather(*tasks)
    return results

urls = ['https://example.com', 'https://example.org']
results = asyncio.run(main(urls))
print(results)
```

В этом примере, функция main() получает список URL-адресов, загружает список прокси из файла proxylist.txt, затем для каждого URL выбирает случайный прокси и запускает задачу с использованием этого прокси. После выполнения всех задач функция возвращает результаты.
Не понятно в чем проблема? У тебя session же где-то вызывает request, ну или конкретный метод, вот там и устанавливай proxy
Похожие вопросы