Справочник · модуль 13 «Интернет и API»

Лимит запросов

Сервер разрешает только несколько запросов за короткое время. Если их больше, приходит код 429. Нужно подождать и повторить.

Сравнение из жизни

Как очередь: за один раз пускают не больше трёх человек.

Пример

import time
import requests

URL = "https://api.pythonaz.com/v1/quote"
for i in range(1, 6):
    r = requests.get(URL)
    if r.status_code == 429:
        time.sleep(int(r.headers["Retry-After"]))
        r = requests.get(URL)
    print(i, r.status_code)
Результат
1 200
2 200
3 200
4 200
5 200

Учитель в уроке Сервер защищается от слишком частых запросов. Он разрешает несколько запросов за короткое время. Если их больше, придёт код четыреста двадцать девять. В заголовке Retry-After сказано, сколько секунд подождать. Подождали и повторили запрос.

Запомнить

Лимит запросов — как аттракцион, куда за раз пускают троих. Остальные ждут и пробуют снова.

Частые ошибки новичков на этой теме

Тема из урока 13.3 «Ключи и ошибки сети» курса PythonAZ.

В этом же уроке