Парсинг сайтов на Python: BeautifulSoup и Scrapy с нуля (10 уроков)
Собирайте данные с сайтов автоматически: от первого HTML до парсера каталога
Редакция Питоники

Данные для анализа редко лежат в готовых CSV — чаще они разбросаны по страницам сайтов. Парсинг (web scraping) учит программу ходить по страницам и вытаскивать нужное: цены, статьи, контакты, таблицы.
Мы начнём с анатомии HTML, освоим requests и BeautifulSoup. Дальше — селекторы, таблицы, пагинация и сохранение результата в CSV. Финал — полноценный парсер каталога товаров. Целый урок про этику и закон: robots.txt, нагрузки на сайт и что парсить нельзя.
Все примеры работают прямо в браузере: HTML встроен в урок, поэтому вы учитесь разбирать разметку без риска для реальных сайтов.
Чему научитесь
- Понимать структуру HTML и находить нужные элементы
- Извлекать данные через find, find_all и CSS-селекторы
- Собирать таблицы и каталоги в структурированные данные
- Обходить пагинацию и не получать баны
- Сохранять результаты в CSV и JSON
- Написать парсер каталога товаров от и до
Для кого: Тем, кто хочет автоматизировать сбор данных: аналитикам, маркетологам, журналистам.
- Урок 1. Парсинг сайтов на Python: как устроен веб и HTML для скрапераПервый урок раздела: раз разбираем страницы — сначала поймём, из чего они состоят. Теги, атрибуты, DOM-дерево, селекторы и DevTools за один вечер.35 мин
- Урок 2. Первый парсер: requests и BeautifulSoup — скачиваем и разбираем страницуСобираем первого рабочего парсера по схеме «скачать — разобрать — достать»: requests скачивает страницу, BeautifulSoup превращает её в объект, из которого данные достаются в одну строку.40 мин
- Урок 3. Поиск элементов: find, find_all и CSS-селекторы в BeautifulSoupДва метода find и find_all плюс семейство select закрывают большинство задач поиска. Разбираем их отличия, ловушки с class_ и attrs и применяем к каталогу товаров.45 мин
- Урок 4. Извлечение данных: text, get_text, атрибуты и навигация по деревуНайти элемент — полдела: данные лежат в тексте и атрибутах. Разбираем text против string, безопасное чтение атрибутов и ходьбу по дереву от родителя к соседям.50 мин
- Урок 5. Парсинг таблиц и списков: собираем данные в структуруТаблица — самая частая структура в вебе: курсы валют, расписания, прайсы. Собираем thead и tbody в список словарей, чистим цены и разбираем colspan.45 мин
- Урок 6. Многостраничный парсинг: пагинация и обход каталогаДанные редко лежат на одной странице. Учим парсер ходить по пагинации, заходить в карточки товаров, выдерживать паузы и переживать обрывы связи.45 мин
- Урок 7. Сохранение результатов: CSV, JSON и базы данныхСписок словарей собран — теперь доведём его до файла: CSV для таблиц, JSON для вложенных структур, sqlite3 для больших объёмов. Плюс две классические ловушки: пустые строки и кракозябры в Excel.40 мин
- Урок 8. Этичный парсинг: robots.txt, задержки и чтобы не забанилиПарсер собрал три тысячи страниц — а утром каждый запрос возвращает 403. Читаем robots.txt, представляемся по имени, держим вежливый темп и отвечаем на 429 так, чтобы дверь не закрылась навсегда.45 мин
- Урок 9. Scrapy для начинающих: пауки, проекты и почему он быстрееBeautifulSoup разобрал страницу — но не умеет ходить по сайту, ставить паузы и писать CSV. Scrapy делает это сам: собираем проект, разбираем паука, yield и pipeline.45 мин
- Урок 10. Проект: парсер каталога товаров с ценами и сохранением в CSVФинальный проект раздела: из приёмов девяти уроков собираем один работающий парсер каталога — обход страниц, чистка цен, CSV и отчёт по средним ценам.50 мин