Лекция 3.2 · Модуль 3 · Сбор данных

Сбор данных и парсинг:
от веб-страницы до чистого датасета

Источники данных, no-code парсеры, подготовка датасетов и санитария данных. Плюс — как нейросети помогают извлекать структуру из неструктурированного.

⏱ ~40 минут 🕷 No-code парсеры 🧹 Санитария данных 🇷🇺 Сервисы доступны в РФ
01
Основы

Что такое парсинг и где его границы

🕷

Парсинг

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

Суть парсинга — превратить визуальную страницу, предназначенную для человека, в таблицу, пригодную для анализа. Там, где человек видит карточку с названием и ценой, парсер видит поля nameПоле «название» — текстовая строка, которую парсер извлекает из заданного элемента страницы (заголовка карточки). и priceПоле «цена» — числовое значение. Хороший парсер умеет очищать его от символа валюты и пробелов, приводя к числу., а на выходе даёт строку CSV.

⚖️

Правомерность и границы

Публичная страница не означает безусловное разрешение на массовое копирование. Учитывайте условия сайта, robots.txtФайл на сайте, в котором владелец указывает, какие разделы разрешено индексировать и обходить автоматическим инструментам. Игнорирование robots.txt — прямой сигнал, что сбор данных нежелателен., авторские права, персональные данные и технические ограничения. Не обходите капчи, авторизацию и защиту; не собирайте контакты и данные частных лиц. Практика и правила быстро меняются.

ℹ️

Для углубления: статья «Кода» об AI-инструментах парсинга — обзор того, как нейросети меняют извлечение данных.

🧪

Проверьте понимание · Вопрос 1

Страница сайта открыта для всех. Означает ли это, что её можно массово копировать парсером?

02
Инструменты

No-code парсеры: извлекаем данные без программирования

Все три инструмента ниже — визуальные: вы кликаете по элементам страницы, парсер сам понимает структуру и повторяет её для однотипных карточек. Код писать не нужно.

🖱
no-code · desktop/web

ParseHub

Визуальный инструмент для извлечения данных с сайтов, включая страницы с динамически подгружаемым контентом. Интерфейс англоязычный, но встроенный перевод Яндекс Браузера помогает пройти базовый сценарий.

Для задач: таблицы, каталоги, карточки и многоуровневые страницы.
Мини-практика: открыть готовый Quickstart, повторить выделение двух полей и выгрузить 10 строк.
visual scraping · шаблоны

ScrapeStorm

Визуальный парсер с шаблонами и режимами интеллектуального распознавания структуры страницы. Может быть полезен как альтернативный инструмент, если сценарий в другом парсере не срабатывает.

Для задач: повторяющиеся карточки, данные в списках и простые таблицы.
Мини-практика: сравнить, какие поля на одной и той же странице проще выделить в ScrapeStorm и Octoparse.
ПараметрOctoparseParseHubScrapeStorm
ПринципКлик по элементам → поляКлик по элементам → поляШаблоны + автораспознавание
Динамический контентДаДа (сильная сторона)Да
Язык интерфейсаEN (+ перевод браузера)EN (+ перевод браузера)EN (+ перевод браузера)
ЭкспортCSV, ExcelCSV, JSONCSV, Excel, JSON
Когда выбиратьОсновной, универсальныйСложные многоуровневые страницыЗапасной, если первый не сработал
  • Выделен только один элемент. Парсер строит шаблон по первому клику; если кликнуть не на тот узел, поля «поедут». Решение — перевыделить элемент и проверить предпросмотр.
  • Не учтена пагинация. Данные собираются только с первой страницы каталога. Добавьте шаг «перейти на следующую страницу» или ограничьтесь одной страницей для учебной задачи.
  • Цена как текст. Символ валюты и пробелы попадают в поле. Очищайте поле до чисел на этапе санитарии данных.
  • Слишком быстрый обход. Агрессивная скорость запросов может быть расценена как атака. Держите умеренный темп — это и вежливо, и надёжнее.

No-code парсеры (Octoparse, ParseHub, ScrapeStorm) закрывают учебные и большинство разовых рабочих задач: десятки–сотни строк с одной-двух страниц. Программный подход нужен, когда:

  • объём — тысячи страниц и регулярный перезапуск;
  • нужна тонкая логика (авторизация, сложные переходы, API);
  • парсинг встроен в автоматический конвейер.

Для ориентира: в Python эту задачу решают библиотеки BeautifulSoup (разбор HTML) и фреймворк Scrapy (массовый обход сайтов). В рамках курса достаточно понимать их существование — практика строится на no-code инструментах.

03
Источники данных

Откуда брать данные: не только парсинг

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

Классический источник для парсинга — открытые веб-страницы с однотипной структурой: карточки и каталоги, справочники, расписания, меню, публичные предложения, контентные витрины, публичные реестры. Чем регулярнее структура страницы, тем проще и надёжнее парсинг.

Правило: парсите только то, что открыто без авторизации, и только в объёме, необходимом для задачи. Массовое копирование чужого сайта целиком — уже не аналитика, а нарушение.

APIApplication Programming Interface — официальный программный интерфейс сервиса, через который данные отдаются в структурированном виде (обычно JSON) по заданным правилам и с указанием лимитов. — официальный способ получить данные сервиса в структурированном виде. Если у источника есть API, выбирайте его: это быстрее, легально, данные приходят уже в машиночитаемом формате, а лимиты и правила явно описаны в документации.

Пример: Яндекс Метрика и Яндекс Директ отдают свои данные через API — именно так дашборды обновляются автоматически, без ручного парсинга.

Часто нужные данные уже кто-то собрал и опубликовал. Перед парсингом проверьте открытые датасеты:

  • data.gov.ru — портал открытых данных Российской Федерации: государственные реестры, статистика, справочники.
  • Kaggle Datasets — крупнейшая коллекция датасетов для анализа и обучения моделей (доступ из РФ может требовать проверки).

Готовый датасет экономит часы сбора и снимает правовые вопросы парсинга — вы работаете с данными, опубликованными для использования.

🔎

Яндекс Wordstat

Инструмент для исследования спроса в поиске: частотность, близкие формулировки, региональная специфика и сезонность запросов.

Для задач: семантическое ядро, формулировки аудитории, сезонность и региональность.

Мини-практика: собрать 10 запросов для продукта, отделить информационные от коммерческих и выбрать три приоритетных.

Семантическое ядроУпорядоченный список запросов, которыми аудитория описывает тему, продукт или проблему. Нужно не только для SEO: это словарь вашей аудитории, основа для классификации обращений, структуры отчёта и понимания спроса. — универсальный аналитический актив. Это формулировки вашей аудитории: они пригодятся и для классификации обращений, и для структуры дашборда, и для понимания сезонного спроса — далеко за пределами поисковой оптимизации.

Порядок выбора источника: готовый датасет → официальный API → парсинг открытых страниц. Парсинг — последний в очереди, а не первый: он требует больше труда и несёт правовые ограничения.

🧪

Проверьте понимание · Вопрос 2

Вам нужны данные сервиса для регулярного отчёта. У сервиса есть официальное API. Что выбрать?

04
Подготовка датасетов

Санитария данных: от сырой выгрузки к анализу

Сырой датасет из парсера почти никогда не готов к анализу. В нём будут дубли, пропуски, «мусорные» значения и разнобой форматов. Санитария данных — обязательный шаг цепочки: сбор → очистка → анализ. Пропустите его — и все выводы будут построены на ошибках.

Дубли

Полные и частичные повторяющиеся строки. Появляются из-за повторного обхода страниц или одинаковых карточек на сайте. Дубли завышают показатели — средние и суммы считаются по «призрачным» записям.

пример: строка 3 = копия строки 1 → удалить

Пропуски

Пустые ячейки там, где должно быть значение. Стратегии: удалить строку (если пропусков много), заполнить медианой/средним (для чисел), пометить как «нет данных» (если факт отсутствия сам по себе информативен).

пример: price = "" → заполнить медианой 1250

Выбросы

Значения, которые выпадают из распределения: цена 999 999 при средней 1 200. Выброс может быть ошибкой парсинга (захвачен не тот элемент), а может — реальной аномалией, которую как раз и стоит исследовать. Сначала проверьте источник.

пример: price = 999999 → проверить источник → исключить

Нормализация

Приведение к единому формату: даты к одному стандарту, регистр текста, единицы измерения, категории без синонимов («Мск» / «Москва» / «москва» → один вариант). Без нормализации группировки и фильтры работают некорректно.

пример: "31.02.2026" → ошибка; "Мск" и "Москва" → "Москва"

Кодировки и формат файла

Единая кодировка UTF-8, корректные разделители и экранирование кавычек. Файл в windows-1251 с точкой с запятой вместо запятой «ломается» при загрузке в BI-систему ещё до начала анализа.

пример: windows-1251 → UTF-8; разделитель ";" → ","

Валидация

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

правило: price ≥ 0, date — существующая, name — не пустое

Форматы хранения датасета

CSV — таблица в текстовом виде: строки разделены переносом, колонки — запятой. Главный формат обмена: его понимают парсеры, BI-системы, Python и Excel. Лёгкий, универсальный, но «плоский» — без вложенных структур.

JSON — формат с вложенностью: внутри записи могут быть списки и объекты. Естественный формат API и нейросетей (именно JSON удобно просить у GigaChat или Qwen при извлечении сущностей). Для плоских таблиц избыточен, для сложных структур — оптимален.

Excel (XLSX) — удобен для ручной работы и передачи коллегам: несколько листов, форматирование, формулы. Минус — проприетарный формат и риск «ручных правок», которые ломают воспроизводимость. Для конвейера лучше CSV, для отчёта человеку — Excel.

🧽
open-source · очистка данных

OpenRefine

Бесплатная программа с открытым кодом для «санитарии» данных: находит дубли и похожие значения, группирует синонимы, исправляет опечатки, преобразует форматы и даты. Работает локально, данные никуда не отправляются. Идеальный инструмент для шага очистки, когда строк уже слишком много для ручной правки, а писать код ещё рано.

Для задач: дедупликация, нормализация категорий, исправление кодировок, подготовка к загрузке в DataLens.
sanitize_dataset.log
# Протокол санитарии: dirty_data.csv → clean_data.csv
[дубли]      строка 3  = копия строки 1 ............ удалена
[дубли]      строка 18 = копия строки 11 ........... удалена
[пропуск]    строка 7:  price = "" .................. медиана → 1250
[выброс]     строка 12: price = 999999 .............. проверен → исключён
[формат]     строка 15: date = "31.02.2026" ......... ошибка → исправлено
[норма]      "Мск" / "москва" / "Москва" ............ → "Москва" (6 строк)
[кодир.]     windows-1251 → UTF-8 ................... ok
────────────────────────────────────────────────────
результат:   236 строк · 0 ошибок · валидация пройдена
🧪

Проверьте понимание · Вопрос 3

В датасете цена одного товара — 999 999 при средней 1 200. Правильное первое действие?

05
Нейросети в помощь

Парсинг с ИИ: структура из неструктурированного

Нейросети не заменяют парсер, но закрывают два места, где классический парсинг буксует: разбор «нестандартных» фрагментов и последующая разметка собранных данных.

🧬
HTML → JSON

Извлечение структуры из фрагмента

Скопируйте HTML-фрагмент карточки или текстовый кусок страницы и попросите Qwen или GigaChat разложить его на поля. Нейросеть понимает смысл, а не только разметку, поэтому справляется там, где у страницы «поехала» вёрстка.

Когда применять: единичные нестандартные источники, прототип структуры полей перед настройкой парсера.
🏷
разметка и классификация

Обогащение собранного датасета

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

Когда применять: текстовые поля в датасете, сотни–тысячи строк, пакетная обработка через GigaChat Big Data API.
PROMPTQwen / GigaChat · извлечение структуры
Вот HTML-фрагмент каталога карточек. Извлеки данные в JSON-массив: [{"name": ..., "price": ..., "category": ...}] Правила: — price — число без символа валюты и пробелов; — если поля нет в карточке — null; — без комментариев, только JSON.
Почему так сформулировано

Жёсткий формат вывода (только JSON, null вместо догадок, число без валюты) делает результат машиночитаемым: его можно сразу сохранить в файл и загрузить в DataLens или OpenRefine. Правило «null вместо домысла» защищает от галлюцинаций — нейросеть не будет выдумывать цену, которой нет на странице.

Правило проверки сохраняется: после разметки нейросетью вручную проверьте несколько случайных строк. Если точность разметки недостаточна — уточните промпт (добавьте примеры «вход → выход»), а не принимайте результат на веру.

06
Лайфхаки и абьюз сервисов

Как собрать данные без бюджета

ЛАЙФХАК 01

Бесплатные лимиты парсеров

У Octoparse, ParseHub и ScrapeStorm есть бесплатные тарифы, которых с запасом хватает на учебные и разовые задачи: десятки страниц и сотни строк. Платные тарифы нужны для регулярного облачного парсинга — для курса они не требуются.

ЛАЙФХАК 02

Перевод интерфейса Яндекс Браузером

Все три парсера англоязычные. Встроенный переводчик Яндекс Браузера переводит интерфейс на лету — базовый сценарий «кликнуть по элементам → задать поля → экспорт» проходится без знания языка. Это снимает главный барьер входа в no-code парсинг.

АБЬЮЗ 03

Сначала датасет, потом парсер

Перед настройкой парсинга проверьте data.gov.ru и Kaggle: нужные данные часто уже собраны и опубликованы. Это быстрее, легально и сразу в чистом формате. Парсинг — только если готового датасета и API действительно нет.

АБЬЮЗ 04

Wordstat — бесплатный срез спроса

Wordstat бесплатно показывает частотность, сезонность и региональную специфику запросов. Выгрузите динамику запроса за два года — получите готовый временной ряд спроса для дашборда, не потратив ни рубля на исследование рынка.

07
Сводка

Карта инструментов и ключевые выводы

ЗадачаИнструментыРезультат
Сбор открытых веб-данныхOctoparse, ParseHub, ScrapeStormCSV/Excel-таблица
Данные без парсингаAPI сервисов, data.gov.ru, KaggleГотовый структурированный датасет
Спрос и формулировки аудиторииЯндекс WordstatСемантическое ядро, сезонность
Санитария данныхOpenRefine, ручные правилаЧистый датасет без дублей и мусора
Извлечение структуры и разметкаQwen, GigaChatJSON-поля, категории, сущности
0

no-code парсера в лекции

0

шагов санитарии данных

0

класса источников данных

0
%

выгрузок требуют очистки

Ключевые выводы

Парсинг — автоматизированное извлечение структурированных данных из веб-страниц, и это лишь один из источников данных наряду с готовыми датасетами, API и поисковой семантикой. Порядок выбора: датасет → API → парсинг. No-code парсеры (Octoparse, ParseHub, ScrapeStorm) закрывают учебные и разовые задачи без программирования.

Сырая выгрузка — ещё не данные. Дубли, пропуски, выбросы, разнобой форматов и кодировки обязательно проходят через санитарию (вручную или в OpenRefine) и только потом попадают в анализ. Нейросети ускоряют извлечение структуры и разметку, но правовые границы и ручная проверка результатов остаются неизменными.