Перейти к содержимому
PD
Парсинг данных

Парсинг сайтов в Excel: выгрузка результатов

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

Все статьи гида Парсинг данных · 11

Собрать данные - половина задачи. Вторая половина - отдать их в виде, в котором с ними можно работать, и здесь есть неочевидные ловушки.

Выбор формата

Электронная таблица. Для человека: посмотреть, отсортировать, отфильтровать. Плюс - типы сохраняются, кодировка не является проблемой, можно оформить.

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

База данных. Для объёма и регулярного использования. Обязательна, если данные обновляются и нужна история.

JSON. Для вложенных структур, которые в плоскую таблицу не укладываются.

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

Типовые проблемы

Кодировка. Классика: вместо букв нечитаемые символы. Причина в том, что файл сохранён в одной кодировке, а открывается в другой. Решается указанием кодировки при импорте или сохранением сразу в формат таблицы.

Артикулы становятся числами. Ведущие нули исчезают, длинные значения превращаются в экспоненциальную запись. Такие поля должны быть текстовыми - помечайте их при импорте или сохраняйте сразу в формате таблицы с заданными типами.

Даты угадываются неверно. Значение, похожее на дату, будет распознано как дата, иногда в чужом формате. Особенно неприятно с артикулами вида «5-10».

Разделители. Значение с запятой внутри ломает CSV, если не экранировано. Кавычки внутри значения - та же история.

Переносы строк в ячейке. Описание с абзацами превращает одну строку в несколько.

Числа с пробелами и валютой. Приводите к числу при сборе, а не потом в редакторе.

Общее правило: приводите данные к нужным типам при сборе, а не надейтесь, что таблица угадает. Она угадает, и не так - см. парсинг на Python.

Структура выгрузки

Что стоит включать помимо самих данных:

  • Дату и время сбора. Без этого через месяц непонятно, насколько данные свежи.
  • Источник для каждой строки. Особенно при сборе с нескольких сайтов.
  • Условия сбора там, где они влияют: регион, тип цены - см. парсинг товаров.
  • Ссылку на исходную страницу. Позволяет проверить руками, и это экономит массу времени при разборе расхождений.
  • Признак проблемы. Строки, где часть полей не собралась, должны быть помечены, а не выглядеть как полноценные.

Отдельный лист или файл со сводкой - число собранных записей, число ошибок, время выполнения - превращает выгрузку в отчёт, по которому видно, стоит ли данным доверять.

Регулярное обновление

Если выгрузка нужна не один раз:

Не перезаписывайте файл. Храните версии или пишите в базу, а таблицу генерируйте. Перезаписанный файл нельзя сравнить с предыдущим.

Отдельно отмечайте изменения. Что появилось, что исчезло, что изменилось - обычно ценнее полного среза.

Автоматизируйте доставку. Файл, который надо забрать руками, забирать перестанут. Отправка на почту или выкладывание в общий каталог по расписанию решают это - см. примеры воркфлоу.

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

Обзор - гид по парсингу. Как забрать таблицу прямо со страницы - парсинг таблиц.

Вопросы и ответы

В каком формате лучше отдавать результаты парсинга?

Для просмотра человеком - файл электронной таблицы, для передачи между программами - CSV, для регулярного использования и объёма - база данных. Частая ошибка - использовать таблицу как хранилище: на десятках тысяч строк она становится медленной и хрупкой.

Почему в Excel вместо русских букв непонятные символы?

Из-за кодировки CSV: файл сохранён в одной, а открывается в другой. Решается либо явным указанием кодировки при импорте, либо сохранением сразу в формате электронной таблицы, где кодировка не является отдельной проблемой.

Почему артикулы превращаются в числа и теряют нули?

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

Ещё по теме

Сделаю под ключ

Соберу парсер под ваш источник

С обходом защиты, прокси и выгрузкой в таблицу, базу или Telegram. Работает по расписанию без вас.

от 300 $ · 3-7 дней

Похожий кейсEtsy Keyword FinderПриложение для аудита ключевых слов Etsy на очереди задач: отправляете ID листинга и до 20 ключей, а фоновые воркеры проходят реальную выдачу шаг за шагом со скриншотами.

«Очень быстрый парсинг, спасибо большое! Даже получилось чуть больше номеров, всем рекомендую! Делал заказ 2 раза, всё устраивает, буду обращаться ещё.»

sotasoftdv · Kwork