Обычное подключение поставщика начинается с прайса: XML, YML, CSV или Excel. Но поставщик не обязан его делать, и довольно часто есть только сайт с каталогом. Это решается, но иначе.
Почему прайс проще
Прайс — уже структурированные данные: артикул, название, цена и остаток лежат по своим местам, программе остаётся их прочитать. Правила чтения одни на все прайсы одного формата.
На сайте тех же данных нет. Есть страницы, где цена перемешана с вёрсткой, характеристики у одного поставщика таблицей, у другого — строкой в описании, а остаток обозначен словом «есть». Разбор приходится писать под конкретный сайт, и на другом он работать не будет.
Что значит «собрать с сайта»
Программа обходит каталог страница за страницей и достаёт оттуда то же, что взяла бы из прайса: название, артикул, цену, наличие, фотографии, характеристики. Дальше товар идёт по тому же конвейеру, что и любой другой, — наценка, замены, картинки, мета-теги. С этого момента разницы уже нет.
От чего зависят срок и цена
- сколько разных типов страниц — каталог, карточка, страница бренда: каждый разбирается отдельно;
- как устроен обход — обычная постраничная навигация или подгрузка по мере прокрутки;
- где лежат характеристики — таблица разбирается, сплошной текст в описании почти нет;
- закрыт ли каталог — за входом для оптовиков или ограничением по частоте запросов.
Поэтому цену такой работы мы не называем заранее: сначала смотрим каталог, потом считаем. Порядок сумм — на странице Цены.
Что ломается чаще всего
Сайт поставщика меняют, не предупреждая, и разбор перестаёт попадать в разметку. Это не поломка программы, а свойство способа: любой сбор со страниц живёт ровно до следующего редизайна. Поэтому если у поставщика есть хоть какой-то файл — пусть кривой Excel, который присылают почтой, — с ним будет и дешевле, и надёжнее.
Как понять, получится ли
Пришлите ссылку на каталог. Мы посмотрим, как он устроен, и ответим за день: получится или нет, сколько это займёт и что выйдет на выходе. До оплаты.