Python Web & Scripts — Django, FastAPI, скрипты

<b>Scrapy ломается не на парсинге, а на мелочах вокруг него</b>

<b>Scrapy ломается не на парсинге, а на мелочах вокруг него</b>

Если проект на Scrapy начинает «сыпаться», почти всегда виноваты не селекторы, а обвязка: middleware, пайплайны, лимиты, cookies и состояние между запросами. Это нормальная история для любого краулера, который живёт дольше одного тестового прогона.

Что стоит проверять первым:
— timeout и retry: иначе ошибки сети маскируются под «пустой сайт»
— duplicate filter: если URL похожи, но query-параметры разные, можно потерять часть данных
— depth и allowed_domains: легко выстрелить себе в ногу и уйти в лишний обход
— item pipeline: именно здесь часто теряются поля, а не в parse-методе

Ещё одна типовая ошибка — писать логику как для requests-парсера. В Scrapy ответ приходит асинхронно, и порядок обработки не гарантирован. Если в spider копится состояние, храните его аккуратно: через meta, отдельные структуры или внешнее хранилище, а не через «глобальную переменную на всё».

И держите в голове простое правило: если нужно быстро понять, где проблема, смотрите на stats, логи ошибок и сырой response, а не сразу переписывайте XPath. Обычно это экономит больше времени, чем любой рефакторинг.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.