Перейти к содержанию

172 уроков, 13 библиотек и челлендж «Что выведет код?» — бесплатно, код прямо в браузере

Начать обучение

Парсинг сайтов на Python: BeautifulSoup и Scrapy с нуля (10 уроков)

Собирайте данные с сайтов автоматически: от первого HTML до парсера каталога

Редакция Питоники

10 уроков ≈ 10–14 часов Средний уровень Бесплатно и без регистрации
BeautifulSoup / Scrapy: интерактивные уроки с запуском кода в браузере

Данные для анализа редко лежат в готовых CSV — чаще они разбросаны по страницам сайтов. Парсинг (web scraping) учит программу ходить по страницам и вытаскивать нужное: цены, статьи, контакты, таблицы.

Мы начнём с анатомии HTML, освоим requests и BeautifulSoup. Дальше — селекторы, таблицы, пагинация и сохранение результата в CSV. Финал — полноценный парсер каталога товаров. Целый урок про этику и закон: robots.txt, нагрузки на сайт и что парсить нельзя.

Все примеры работают прямо в браузере: HTML встроен в урок, поэтому вы учитесь разбирать разметку без риска для реальных сайтов.

Чему научитесь

  • Понимать структуру HTML и находить нужные элементы
  • Извлекать данные через find, find_all и CSS-селекторы
  • Собирать таблицы и каталоги в структурированные данные
  • Обходить пагинацию и не получать баны
  • Сохранять результаты в CSV и JSON
  • Написать парсер каталога товаров от и до

Для кого: Тем, кто хочет автоматизировать сбор данных: аналитикам, маркетологам, журналистам.

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