Что такое requests?
Библиотека, которая делает HTTP-запросы простыми. Ну, почти. Если бы urllib был танком, то requests — это удобный велосипед. Пока не наедете на грабли.
Зачем это нужно?
— Чтобы не писать urllib.request.urlopen(url).read().decode('utf-8') и не чувствовать себя археологом.
— Чтобы отправлять GET/POST запросы одной строкой (а ошибки разбирать десятью).
— Чтобы работать с API и верить, что документация не врет (спойлер: врет).
Когда использовать?
✅ Нужно быстро что-то запросить с API (и надеяться, что оно ответит).
✅ Парсите сайт (пока он не начал парсить вас).
✅ Хотите человеческий интерфейс (но смиритесь, что интернет — место нечеловеческое).
Когда НЕ использовать?
❌ Нужна асинхронность (aiohttp или httpx вам в помощь).
❌ High-load (блокирующие запросы = тормоза).
❌ Если боитесь внезапных ConnectionError, Timeout и "а где мой JSON?".
Пример кода (работает... обычно):
Что может пойти не так?
— API передумало отвечать (404, 429, 500...).
— SSL-сертификат "самопальный" (SSLError).
— В ответе HTML вместо JSON (привет, json.decoder.JSONDecodeError).
— Прокся перестала работать (тишина и ConnectionError).
Вывод
requests — это просто и удобно, пока интернет играет по правилам. А если нет — ну, хотя бы ошибки читаемые.
P.S. Хотите гайд по выживанию с API? Заходите в наш тг-канал — там есть всё: от GET /hello до "почему Cloudflare меня ненавидит".

