Как отправить 500 запросов на сайт в секунду на python?

Пользователь

от cloyd , в категории: Python , 2 месяца назад

Как отправить 500 запросов на сайт в секунду на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от evalyn.barrows , 2 месяца назад

@cloyd 

Для отправки множества запросов на сайт в секунду на Python можно использовать библиотеку requests вместе с многопоточностью или асинхронными запросами.


Рассмотрим два примера:

  1. Многопоточность
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import requests
import threading

def send_request():
    url = "https://example.com"  # замените на нужный URL
    response = requests.get(url)
    print(response.status_code)

# Создаем и запускаем потоки
threads = []
for _ in range(500):
    thread = threading.Thread(target=send_request)
    thread.start()
    threads.append(thread)

# Ожидаем завершения всех потоков
for thread in threads:
    thread.join()


  1. Асинхронные запросы с использованием asyncio и aiohttp
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import asyncio
import aiohttp

async def send_request():
    url = "https://example.com"  # замените на нужный URL
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            print(response.status)
            response = await response.text()

# Создаем и запускаем корутины
loop = asyncio.get_event_loop()
tasks = [loop.create_task(send_request()) for _ in range(500)]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()


Обратите внимание, что неправильное использование многопоточности или асинхронных запросов может привести к блокировке IP-адреса и рассматривается как нежелательное поведение, если вы не имеете разрешения или явного соглашения с владельцем сайта. Убедитесь, что ваши действия соответствуют правилам и политике использования интернет-ресурса.