Парсинг — это автоматизированный сбор данных. Для интернет-магазинов это информация о товарах: их описания и характеристики, такие как цена, габариты, вес, скидка и т.д.
Парсер экономит время на аналитику. Вы сможете быстро мониторить цены конкурентов и наполнять свой магазин товарами и информацией.
Выделяют два этапа парсинга: сбор данных и преобразование их в CSV, XML или другой формат. Выбор зависит от цели парсинга. Для интернет-магазинов в 90% случаев будет импорт в какую-либо CMS (система управления содержимым сайтов): Bitrix, Opencart, WordPress и т. п.
Из этой статьи вы узнаете:
- Топ-5 популярных форматов для хранения данных с парсинга, конкретнее рассмотрим:
- что за форматы
- где используются
- их спецификацию (документацию, стандарт)
- особенности парсинга
- плюсы и минусы
- В каких ситуациях можно конвертировать форматы из одного в другой, а в каких нельзя.
- Как выбрать формат для хранения данных с парсинга. Какой именно подходит для вашего проекта.
Топ-5 форматов для сбора данных с парсинга:
1. CSV
Что за формат
Текстовый формат, созданный для представления данных в табличном виде. Каждая строка в документе — это строка таблицы, а столбцы разделены специальным символом-разделителем.
В стандарте этот специальный символ-разделитель — запятая (,). Если она нужна в данных. Например, описание товара содержат запятые, то используют точку с запятой (;). Если и они нужны, то кавычки («). А если нужны и кавычки, то используют двойные кавычки («»).
Где используется
Обычно для импорта в CMS, админки и SAAS сервисы.
Протокол (спецификация)
Описан в стандарте RFC 4180. Вот основные требования, которые он предъявляет:
- Каждая строка файла — строка таблицы.
- Разделителем значений колонок является символ запятой (,). На практике же часто используются другие разделители.
- Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками («»). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.
- Каждая строка (запись) должна содержать одинаковое количество полей.
Особенности парсинга
Запись данных парсинга происходит в виде последовательного добавления строк. Открыть и редактировать данные можно в любом редакторе электронных таблиц.
Плюсы и минусы
Формат распространен, прост и удобен.
Ошибки возникают, когда символ-разделитель используется в поле ячейки. В таком случае нужно выделить поля другим символом и выбрать его как разделитель в настройках программы (например, Microsoft Excel).
Разные программы и сервисы могут использовать свой стандарт символа-разделителя. Это также решается в настройках.
2. XLS(X)
Что за формат
XLS и его поздняя модификация XLSX — формат файлов программ Microsoft Excel. Файл хранит данные о таблицах, цветах ячеек и текста, вычисления с использованием формул и т.д.
Где используется
В импорте и экспорте баз данных, админпанелей интернет-магазинов и сервисов.
Особенности парсинга
Требует задействования дополнительных библиотек для записи в xls или xlsx. Для языка программирования Python — это будут библиотеки pandas, openpyxl, xlrd, xlutils и pyexcel.
Плюсы и минусы
Возможность сохранять форматирование итоговых данных делает вывод наглядным и презентабельным. Можно сразу выводить данные в нужном формате: рубли, дата, числа и т.д.
Главная проблема формата — необходимость задействовать дополнительные библиотеки языка программирования для обработки файлов. Это требует больше времени и ресурсов сервера, чем в таблицу csv.
Часто разработчики упрощают модули импорта заменой xls на csv. Затем файл csv уже форматируют в xls.
3. XML
Что за формат
eXtensible Markup Language или расширяемый язык разметки — это формат файла, где текстовые данные записываются внутри тегов разметки в иерархическом порядке.
Пример простейшего xml документа:
<?xml version=»1.0″?>
<list_of_items>
<item id=»1″><first/>Красный</item>
<item id=»2″>Зеленый<sub_item>Зеленый первый</sub_item></item>
<item id=»3″>Синий</item>
<item id=»4″><last/>Коричневый</item>
</list_of_items>
Где используется
Данные парсинга часто сохраняют в формате xml. С ним удобно работать программам и человеку. Он гибок и позволяет создавать свои структуры данных.
Почти все сервисы парсинга с удовольствием работают с этим форматом.
Протокол (спецификация)
Включает в себя описания языка и ряд вопросов, касающихся кодировки и обработки документов. Спецификацию вы можете прочитать здесь.
Особенности парсинга
Перед парсингом необходимо спланировать схему данных и протестировать ее валидности, т.е. пригодность для использования. Легко допустить ошибки в структуре, иерархии и синтаксисе. Даже небольшая ошибка приведет к неправильному заполнению файла.
Проверить файл на валидность легко — откройте его в Excel. Редактор подсветит ошибки и укажет на нужную строку.
Плюсы и минусы
Прост в использовании, записи и чтении. Не требует сторонних библиотек, открывается текстовыми и табличными редакторами, поддерживается большинством сервисов и программ, которые связаны с парсингом.
4. SQL
Что за формат
Представляет собой последовательный набор исполняемых команд для создания, модификации и управления данными в реляционной базе данных, управляемой СУБД.
По факту, текстовый файл содержащий операторы, инструкции и вычисляемые функции.
Где используется
Для внесения данных напрямую в базу данных, то есть без использования интерпретаторов, библиотек и т. п.
Протокол (спецификация)
SQL/PSM является актуальным стандартом языка SQL. Он описывает синтаксис и семантику для потока управления, обработки исключений, локальных переменных и т.п. Также определяет информационную схему (метаданные) для хранимых процедур.
Для разных СУБД разрабатывается своя версия языка SQL и компании-разработчики по-разному относятся к стандарту. СУБД Oracle Database держится от него на расстоянии. MySQL и MariaDB, наоборот, близки к стандарту SQL/PSM.
Особенности парсинга
Результат парсинга это инструкция, которую затем нужно будет исполнить в СУБД.
Необходимо соблюдать синтаксис операторов и инструкций, не допускать ошибок в вычислительных формулах.
Если в вашей db (data base или база данных), куда вы собираетесь парсить уже есть схема данных и какая-то информация, то нужно следовать этой структуре и избежать повторений в поле id. Чтобы избежать ошибок лучше импортировать имеющиеся данные, проанализировать их структуру и воссоздать подобные записи в шаблоне парсинга.
Плюсы и минусы
Запись напрямую в базу данных дает всю мощь СУБД, а это функции, хранимые процедуры, система управления версиями и т.п. Если проект требует, чтобы данные с парсинга хранились в db, то это идеальный вариант.
Минусом является скорость записи данных в db. Она ниже скорости записи в файл, например: csv, xml, json и т.д. Это компенсируется возможностями СУБД.
5. JSON
Что за формат
Текстовый формат обмена данными, основанный на JavaScript. Из-за своего удобства стал независимым форматом и поддерживается практически любым языком программирования.
JSON-текст хранит данные в структуре «ключ:значение» или упорядоченный набор значений.
Пример структуры «ключ:значение»:
{
«firstName»: «Анатолий»,
«lastName»: «Рыбкин»,
«address»: {
«streetAddress»: «Московское ш., 101, кв.101»,
«city»: «Ленинград»,
«postalCode»: 101101
},
«phoneNumbers»: [
«8 (943) 143-55-34»,
«8 (900) 321-99-55»
]
}
Пример структуры “упорядоченный набор значений”:
[“Hello”, “world”, “!”]
Где используется
Чаще всего используется веб-сервисами, т.к. является обычной строкой, но имеет структуру объекта.
Парсинги из-за простоты используют JSON повсеместно.
Протокол (спецификация)
Существуют разные стандарты JSON, но на практике разработчик сам решает, какой JSON будет считаться правильным, а какой нет. Однако есть общие правила, которые нельзя нарушать.
Главные правила JSON:
- Данные написаны в виде пар «ключ:значение»
- Данные разделены запятыми
- Объект находится внутри фигурных скобок {}
- Массив — внутри квадратных []
Особенности парсинга
На первый взгляд для парсинга формат JSON выглядит идеальным. Он по сути является строкой и легко изменяет структуру под нужды разработчика.
Во время парсинга в JSON могут возникнуть подводные камни, которые приведут к багам. Решение проблемы может занять время из-за отсутствия единой спецификации. Документирование некоторых аспектов работы с JSON иногда плохо описано или вовсе отсутствует.
Подробно о парсинге на json прочтите здесь.
Плюсы и минусы
Гибкость и простота. Поддерживается практически всеми языками программирования и сервисами.Отсутствие единого стандарта, что ведет к неожиданным ошибкам.
Перевод из одного формата в другой
Если вам нужно преобразовать результат парсинга в другой формат, то в большинстве случаев вам не придется делать это вручную, но иногда этого не избежать. Рассмотрим разные случаи.
XLS(X) в CSV и обратно
XLS(X) преобразуется в CSV и обратно пересохранением в Microsoft Excel или другом табличном редакторе. Если возникнут ошибки, то обратите внимание на кодировку. Для импорта файл CSV должен быть в кодировке UTF-8.
XML
XML можно представить в виде таблицы, однако схема XML может быть настолько сложной, что принцип «одна строка — один товар» не сработает. Ручного редактирования не избежать.
Преобразование в обратную сторону (из любых таблиц в xml) поддерживается большинством редакторов.
SQL
Из базы данных можно получить файл в другом формате, тот же XML. Если такая возможность есть, то это делается через команды к СУБД. Вот пример: в MySQL: “mysqldump -X test > test.xml”.
Конвертировать какой-либо формат в db поможет онлайн сервис или скрипт на языке программирования.
JSON
JSON легко конвертируется в другие форматы. Из JSON в XML это делается в этом онлайн сервисе. Уверен, вы сможете найти и другие сервисы для конвертации JSON в другие форматы.
Как выбрать формат
Определите, где и как вы собираетесь использовать данные с парсинга. Изучите целевую админпанель сайта, сервис или программу, для которой предназначается парсинг. Подумайте, в каком формате вам будет удобнее воспринимать данные.
Далее проведите несколько тестов. Попробуйте спарсить в разные форматы, если это позволяет быстро сделать сервис или программа. Изучите то, что у вас получилось. Нужно ли будет конвертировать этот формат в другой.
На основе полученных ответов выберите лучший формат.