Парсер на Python с нуля: собрать данные и не получить бан

Обновлено 15.08.2026 Уровень: новичок 4 часа 0 ₽

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

Что получится
Что получится: скрипт, который обходит страницы и складывает данные в CSV.
Что получится: скрипт, который обходит страницы и складывает данные в CSV.
4 ч с нуля до таблицы
0 ₽ на бесплатных лимитах
6 шагов

Шаг 1. Сначала проверить, что можно

До первой строки кода откройте robots.txt сайта и его пользовательское соглашение. Парсить чужой сайт вопреки прямому запрету — это не техническая, а юридическая история, и агент вам о ней не напомнит.

Шаг 2. Разобрать структуру страницы

Откройте страницу, найдите нужные элементы через инструменты разработчика и отдайте агенту фрагмент разметки. Так он будет работать с фактами, а не с догадками о структуре сайта.

Промпт · шаг 2
Вот фрагмент HTML страницы: {вставить}.
Мне нужны поля: {название, цена, ссылка}.
Напиши функцию, которая достаёт эти поля
из такого фрагмента. Библиотеки: requests + bs4.
Ничего больше не добавляй.

Шаг 3. Обойти список страниц

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

Промпт · шаг 3
Добавь обход страниц списка с пагинацией.
Обязательно: пауза 1–2 секунды между запросами,
адекватный User-Agent, остановка при 429 и 5xx.
При ошибке — повтор не более трёх раз.

Шаг 4. Выгрузить в таблицу

CSV открывается в любой таблице и не требует ничего устанавливать. Важно попросить дозапись, а не перезапись: иначе прерванный на середине запуск сотрёт всё, что уже собрано.

Промпт · шаг 4
Складывай результат в CSV в кодировке utf-8-sig,
чтобы корректно открывался в Excel.
Запись — построчно по мере обхода, а не в конце.
При повторном запуске дописывай, не перезаписывай.

Шаг 5. Пережить сломанные страницы

На сотой странице обязательно найдётся товар без цены или с другой разметкой. Скрипт не должен падать — он должен пропустить запись и написать в лог, что именно не разобрал.

Шаг 6. Проверить данные глазами

Откройте выгрузку и сверьте десять случайных строк с сайтом. Парсеры чаще всего ошибаются молча: собирают не то поле или теряют часть записей, и заметить это можно только руками.

Использовали в гайде

DeepSeek — дешёвая модель

Законно ли парсить сайты?
Зависит от сайта и данных. Проверяйте robots.txt и пользовательское соглашение, не собирайте персональные данные и не создавайте нагрузку. Если сомневаетесь — не парсите.
Почему меня забанили?
Почти всегда из-за отсутствия пауз между запросами. Секунда задержки решает проблему в подавляющем большинстве случаев.
Что делать, если данные подгружаются скриптом?
Обычный запрос вернёт пустую страницу. Попросите агента посмотреть, откуда страница берёт данные, — часто это открытый JSON, с которым работать проще, чем с разметкой.