vvs35.ru боты, парсеры, серверы
УслугиГотовые решенияБлог принимаем заказы

Парсер описаний товаров по списку артикулов из Excel

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

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

Начинается всё с вашего файла

Прежде чем что-то искать, смотрю, чем мы располагаем. Для сопоставления годятся:

  • штрихкод (EAN-13) — самый надёжный ключ, если он есть и у вас, и на сайте;
  • артикул производителя вместе с брендом;
  • название — когда больше ничего нет.

Ваш внутренний код товара для поиска на чужом сайте бесполезен: там его никто не знает. Артикул поставщика годится, только если ищем у этого же поставщика.

Типовая порча данных в Excel. Штрихкод показывается как 4,60703E+12, а у артикула 00125 пропали нули и осталось 125. Это Excel сам решил, что перед ним числа. Со штрихкодом в xlsx цифры обычно целы, достаточно сменить формат ячейки, а если файл пересохраняли в CSV — хвост уже потерян. Нули в начале артикула пропадают насовсем. Штрихкоды и артикулы надо хранить как текст, а испорченные — выгружать из учётной системы заново.

Как искать позиции на сайте-источнике

Есть два пути, и выбор зависит от сайта:

  1. Через поиск на сайте. Для каждой строки вбивается артикул или штрихкод, берутся результаты. Хорошо, когда позиций немного, а поиск на сайте понимает артикулы.
  2. Собрать каталог целиком и сопоставлять у себя. Надёжнее, если поиск на сайте слабый: не находит артикул с дефисом, выдаёт аксессуары вместо товара. Заодно видно, сколько всего товаров у источника и какие бренды там вообще есть.

Если в вашем списке несколько тысяч позиций, а у источника каталог сопоставимого размера, второй путь обычно ещё и быстрее.

Сопоставление: от надёжного к сомнительному

Каждая строка проходит проверки по порядку, и первая сработавшая записывается в отдельную колонку:

  1. Штрихкод — совпал, значит, товар тот же.
  2. Артикул + бренд. Артикул перед сравнением приводится к одному виду: убираются пробелы, дефисы, точки, регистр. AB-123.45, ab 12345 и AB12345 становятся одним и тем же. Бренд нужен, потому что короткие артикулы вроде 1020 встречаются у разных производителей.
  3. Название с нечётким совпадением. Названия тоже приводятся к одному виду, а дальше считается, насколько они похожи. Совпадение выше порога — кандидат, но не готовый результат.

Где нечёткое совпадение врёт. «Краска фасадная белая 0,9 л» и «Краска фасадная белая 9 л» похожи почти полностью, но это разные товары с разной ценой. То же с мощностью, диаметром, количеством в упаковке. Поэтому числа в названии у меня должны совпасть точно, а всё, что найдено по названию, помечается «проверить», а не «найдено».

Что делать с ненайденными

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

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

Ненайденные можно прогнать по второму сайту-источнику — это отдельный источник и отдельная настройка. А «проверить» обычно разбирается быстро: смотрите по ссылке и ставите «да» или «нет».

Как отдаётся результат

Ваш же файл: те же строки в том же порядке, ваши колонки не тронуты. Справа добавлено:

КолонкаЧто внутри
Статуснайдено / проверить / несколько вариантов / не найдено
Как найденоштрихкод, артикул + бренд или название
Ссылка на источникадрес карточки, чтобы проверить глазами
Название у источникадля сверки с вашим
Описаниетекстом или с HTML-разметкой, как удобнее для импорта
Характеристикипо колонке на каждую или одной строкой
Фотоссылки на оригиналы; по запросу — файлы с именами по артикулу
Цена и наличиеесли нужны, с датой сбора

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

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

Повторный запуск

Список позиций меняется, цены у источника тоже. Сопоставление делается один раз, и следующий прогон опирается на него. Вариантов два:

  • На новом файле — добавили позиции, запускаете снова, получаете тот же формат.
  • Только обновить цены и наличие. Для уже сопоставленных позиций ссылки на карточки известны, искать заново не нужно — парсер просто обходит эти ссылки. Это быстрее первого запуска и не требует повторной проверки спорных строк.

Если обновление нужно регулярно — ежедневно или раз в неделю, с историей изменений, — это уже мониторинг цен, он настраивается на сервере по расписанию.

Цена и сроки

По странице услуги: от 2 000 ₽ за один сайт-источник, срок 1–3 дня. Это за готовый файл; если результат нужно сразу загрузить в вашу CMS — от 3 500 ₽, 2–4 дня, как на странице услуги. Второй источник со схожей структурой — примерно плюс день. Регулярный сбор по расписанию с историей цен — от 4 000 ₽, 3–5 дней.

Для оценки пришлите файл — можно не весь, хватит 20–30 строк с теми колонками, что есть, — и ссылку на сайт-источник. По ним видно, по чему получится сопоставлять и много ли будет ручной проверки.

Коротко: частые вопросы

Как парсер находит мои товары на чужом сайте?

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

Что будет с позициями, которые не нашлись?

Они остаются в файле на своих местах с пометкой «не найдено», а спорные — с пометкой «проверить» и ссылками на кандидатов. Ненайденные можно прогнать по второму сайту-источнику.

В каком виде я получу результат?

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

Сколько стоит парсер описаний по списку?

От 2 000 ₽ за один сайт-источник, срок 1–3 дня. Второй источник со схожей структурой — примерно плюс день. Регулярное обновление цен по расписанию — от 4 000 ₽. Точную сумму называю, когда посмотрю ваш файл и сайт-источник.

Пришлите часть файла и ссылку на сайт-источник. Скажу, по чему получится сопоставлять, какая доля позиций, скорее всего, найдётся автоматически и во что это обойдётся.

Читать дальше