
Pillow в Python: первые шаги с обработкой изображений
За полчаса вы научитесь открывать, изменять размер, обрезать, поворачивать и сохранять изображения в Python с помощью библиотеки Pillow — и поймёте, где новичок теряет качество.

За полчаса вы научитесь открывать, изменять размер, обрезать, поворачивать и сохранять изображения в Python с помощью библиотеки Pillow — и поймёте, где новичок теряет качество.

Четыре подхода к созданию PDF в Python — от рендеринга HTML до сборки страницы вручную. Разбираем, что выигрываешь и чем платишь в каждом случае, и когда какой брать.

Битые шрифты, разъезжающиеся таблицы и молчаливые обрезки страниц — самые частые проблемы при генерации PDF из Python. Разбираем, почему они возникают в WeasyPrint, ReportLab и fpdf2, и как их не допустить.

Локально PDF собирается за секунду, а на сервере отчёт зависает на 30 секунд и течёт память. Разбираем, что проверить в генерации PDF из Python до релиза: библиотеки, шрифты, память, таймауты.

Когда time.sleep в цикле перестаёт справляться, встаёт вопрос выбора планировщика. Разбираем APScheduler, Celery beat, schedule и системный cron — что чем платит и когда какой подходит.

Внешний API отвечает 429 в пиковые часы, токен протух посреди пагинации, а один таймаут кладёт весь ночной импорт. Разбираем, как правильно держать авторизацию, реагировать на лимиты и настраивать повторы в requests и httpx.

Как собирать данные с сайтов на Python, не нарушая закон и не выжигая чужой сервер: robots.txt, rate limiting, легальные источники и разбор частых заблуждений про «обход защиты».

Оба инструмента гоняют браузер из Python, но по-разному ждут элементы, ставятся и параллелятся. Разбираем, где Selenium ещё нужен, а где Playwright снимает половину болей с ожиданиями.

Что выбрать для автоматизации браузера, где Selenium проигрывает Playwright по ожиданиям и как перестать ловить StaleElementReferenceException и таймауты на CI.

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

Пайплайн парсил 200 тысяч страниц за ночь, а стал упираться в 9 часов. Разбираем, где BeautifulSoup и lxml теряют время и когда selectolax даёт трёхкратный выигрыш.

Наивный retry в цикле for кладёт чужой сервис и не защищает вас от каскадных отказов. Разбираем экспоненциальный backoff, джиттер и что выбрать между tenacity, urllib3 и своим кодом.