Всем привет. Я очень часто ищу решение для своих задач на форуме, поэтому тоже хочу поделиться своими некоторыми наработками, которые хоть и не приносят денег напрямую, но позволяют экономить время и решать нестандартные задачи. В статье речь пойдет, о формировании файла со свойствами товаров для загрузки в интернет магазин для дальнейшего продвижения по НЧ ключам.
Вступление
Не для кого не секрет, что наиболее дешевым, эффективным, абсолютно "белым" и подходящим для как новых, так и популярных интернет магазинов является работа с фильтрами товаров.
Посмотрим на примере Mvideo
Наличие подобного рода фильтров помогает проще пользователю выбирать товар, улучшает поведенческие факторы страницы, добавляет вхождения ключевых слов, уникализирует страницу.
Также с настройками фильтра можно формировать физический url с настройками meta тэгов для продвижения по НЧ запросам. Даже у Mvideo эта функция не настроена - при изменении параметров фильтра, url не изменяется. Конкуренция по таким запросам будет значительно ниже, чем по банальным с названием категории (купить ноутбук, или по названиям моделей - Ноутбук HP Pavilion 17-ab427ur 5MH95EA).
Возьмем категорию ноутбуки. Пример товара https://market.yandex.ru/product--n...o-ii-gl504gm/119822185/spec?track=tabs&lr=213 У него есть параметры. На каждый из параметров в будущем мы можем настроить физический url с необходимыми тегами и подборкой товаров. Тем более что плагины для CMS позволяют массово генерировать, нужно только 1 раз настроить и добавить товары с параметрами.
Проверим конкуренцию по Мутагену
Частота небольшая, но и конкуренция очень низкая
Проверим частоту и конкуренцию по названию ноутбука
Как видим хоть частота и побольше, но и конкуренция сильнее в разы. И молодым интернет магазинам попасть по запросам с названием модели или категории - очень трудно. А в вот по НЧ запросам с фильтров - вполне реально.
Чтобы сделать физическими страницы фильтра и прописать необходимые тэги, обычно используются дополнительные модули к CMS. Например, для OpenCart, для ImageCms, для ShopScript и т. д.
Но главная проблема в том, чтобы сформировать эти параметры к товарам. Трудности с которыми я сталкивался:
Но как обычно, всемогущий ZennoPoster + немного усилий и можно сэкономить себе уйму времени и сделать то, до чего 90% конкурентов не дойдут.
Работа шаблона
Для демонстрации возьмем Яндекс Маркета. Вообще лучше собирать ссылки на товары и парсить отдельными шаблонами, но чтобы выглядело это автономно и сразу можно было протестировать - встрою парсинг товаров.
Алгоритм работы шаблона следующий
Для формирования xPath путей я использую плагин для Crome Xpather
Также хотелось бы отметить некоторые технические моменты, которые вы можете применить в своих шаблонах:
1. Проверка на наличие в Black List с помощью цикла Parallel.For
Данный цикл позволяет делать проверку не перебором строк, а многопоточно. Добавим в using
Код
Лично у меня проверка наличия url в Black листе занимает менее 1 сек. Даже если строк около 500 000. В блоке проверки на BL я добавил замер времени выполнения. Можете протестировать, за сколько у вас будет проходить проверка.
2. Долгая работа стандартных методов работы с таблицами
Когда пришлось разобрать параметры у 30 000 товаров, шаблон у меня работал около 10 дней. Он работал в 1 поток. Потом переделал его в многопоток, но это не решило проблему, так как самое узкое место - это запись данных в таблицу.
Соответственно в многопотоке разбор происходит быстро, а вот сама запись - очень долго. Даже отмена Lock (так как кол-во строк у нас не меняется, можно было не бояться утери данных) не помогла. Пришлось искать другое решение. И оно было найдено - это библиотека Epplus.dll для работы с Excel файлами.
Другой участник конкурса уже описывал работу с этой библиотекой, а также парсинг с помощью Xpath, думаю нет смысла повторяться, как добавить ссылку на библиотеку и т. п.
В юзинги добавляем
В итоге переделав шаблон со стандартных методов работы с таблицей на работу через Epplus скорость шаблона выросла в десятки раз. Почему так происходит - мы сначала в файле, который в буфере, делаем все необходимые изменения, и только потом его сохраняем один раз, а не каждый раз нужно сохранять при изменении каждой ячейки.
Подводя итог
Мы предусмотрели работу с блэк листом для ссылок на товары и с блэк листом для свойств. Теперь можем сделать парсинг разных поставщиков, спарсить любые товары и корректно их выгрузить для правильно настройки фильтра.
Я применяю этот шаблон для работы с реальными интернет магазинами, но ничего не мешает делать интернет магазин по типу https://regmarkets.ru/ который просто аккумулируют товары на сайте, собирают трафик и со страницы товара переправляют пользователя на партнерский интернет магазин.
Важно отметить, что это не "черный" метод продвижения и никаких санкций за него не последует. Не стоит переживать за баны таких страниц и сайтов, так как мы не нарушаем никакие правила ПС, а наоборот, помогаем пользователю быстрее найти интересующий его товар.
Также этот метод хорошо работает, когда появляется трендовый товар и все пытаются продвинуть свои сайты по очевидным ключам с названием товара. Сделав быстро парсинг конкурентов, мы делаем максимально широкий ассортимент, и за счет применения фильтров охватываем ключи по которым никто не продвигается, ключи которые сервисы типа wordstat вообще могут не показать.
P. S. Я уже достаточно долго работаю с ZP, но прямых денег он мне не принес ни рубля. Но сколько он мне сэкономил времени, сколько выполнил таких задач, до которых без него даже и не додумался - сложно сосчитать. И как приятный бонус начал по необходимости изучать C#, совмещая приятное с полезным.
Вступление
Не для кого не секрет, что наиболее дешевым, эффективным, абсолютно "белым" и подходящим для как новых, так и популярных интернет магазинов является работа с фильтрами товаров.
Посмотрим на примере Mvideo
Наличие подобного рода фильтров помогает проще пользователю выбирать товар, улучшает поведенческие факторы страницы, добавляет вхождения ключевых слов, уникализирует страницу.
Также с настройками фильтра можно формировать физический url с настройками meta тэгов для продвижения по НЧ запросам. Даже у Mvideo эта функция не настроена - при изменении параметров фильтра, url не изменяется. Конкуренция по таким запросам будет значительно ниже, чем по банальным с названием категории (купить ноутбук, или по названиям моделей - Ноутбук HP Pavilion 17-ab427ur 5MH95EA).
Возьмем категорию ноутбуки. Пример товара https://market.yandex.ru/product--n...o-ii-gl504gm/119822185/spec?track=tabs&lr=213 У него есть параметры. На каждый из параметров в будущем мы можем настроить физический url с необходимыми тегами и подборкой товаров. Тем более что плагины для CMS позволяют массово генерировать, нужно только 1 раз настроить и добавить товары с параметрами.
Проверим конкуренцию по Мутагену
Частота небольшая, но и конкуренция очень низкая
Проверим частоту и конкуренцию по названию ноутбука
Как видим хоть частота и побольше, но и конкуренция сильнее в разы. И молодым интернет магазинам попасть по запросам с названием модели или категории - очень трудно. А в вот по НЧ запросам с фильтров - вполне реально.
Чтобы сделать физическими страницы фильтра и прописать необходимые тэги, обычно используются дополнительные модули к CMS. Например, для OpenCart, для ImageCms, для ShopScript и т. д.
Но главная проблема в том, чтобы сформировать эти параметры к товарам. Трудности с которыми я сталкивался:
- не все поставщики имеют нормальную выгрузку через api, чтобы выгрузить автоматически все товары с параметрами
- у некоторых вообще нет никакой выгрузки и можно только спарсить товары с сайта
- когда в интернет магазине много параметров из разных категорий - то связывание параметров для новых товаров превращается в ад.
- нет единого формата, у каждого поставщика немного разные форматы и приходится вручную подгонять все к единому виду.
Но как обычно, всемогущий ZennoPoster + немного усилий и можно сэкономить себе уйму времени и сделать то, до чего 90% конкурентов не дойдут.
Работа шаблона
Для демонстрации возьмем Яндекс Маркета. Вообще лучше собирать ссылки на товары и парсить отдельными шаблонами, но чтобы выглядело это автономно и сразу можно было протестировать - встрою парсинг товаров.
Алгоритм работы шаблона следующий
- Сбор ссылок на товар (в идеале лучше подготовить отдельно шаблон который собирает ссылки на товары)
- Парсим данные о товаре и собираем массив параметров
- Достаем все спаршеные параметры, удаляем дубли
- Создаем в таблице столбцы с названием параметров (в шаблоне предлагаю 2 варианта, как проверять, есть ли уже столбец с названием параметра или нет: Первый - перед добавлением перебираем все заголовки, если нашли - не добавляем. Второй способ - используем Black List для названий параметром. Перед созданием столбца, проверяем, есть ли такой уже в BL.)
- Разбираем массив параметров у каждого товара по ячейкам
Для формирования xPath путей я использую плагин для Crome Xpather
Также хотелось бы отметить некоторые технические моменты, которые вы можете применить в своих шаблонах:
1. Проверка на наличие в Black List с помощью цикла Parallel.For
Данный цикл позволяет делать проверку не перебором строк, а многопоточно. Добавим в using
Код:
using System.Threading.Tasks;
Код
Код:
string url = project.Variables["url"].Value;
bool status = false;
IZennoList list = project.Lists["BL"];
Parallel.ForEach<string>(list, el => {
//project.SendInfoToLog(el);
if (el == url){
status = true;
return status;
}
});
Лично у меня проверка наличия url в Black листе занимает менее 1 сек. Даже если строк около 500 000. В блоке проверки на BL я добавил замер времени выполнения. Можете протестировать, за сколько у вас будет проходить проверка.
2. Долгая работа стандартных методов работы с таблицами
Когда пришлось разобрать параметры у 30 000 товаров, шаблон у меня работал около 10 дней. Он работал в 1 поток. Потом переделал его в многопоток, но это не решило проблему, так как самое узкое место - это запись данных в таблицу.
Соответственно в многопотоке разбор происходит быстро, а вот сама запись - очень долго. Даже отмена Lock (так как кол-во строк у нас не меняется, можно было не бояться утери данных) не помогла. Пришлось искать другое решение. И оно было найдено - это библиотека Epplus.dll для работы с Excel файлами.
Другой участник конкурса уже описывал работу с этой библиотекой, а также парсинг с помощью Xpath, думаю нет смысла повторяться, как добавить ссылку на библиотеку и т. п.
В юзинги добавляем
Код:
using OfficeOpenXml;
using OfficeOpenXml.Style;
В итоге переделав шаблон со стандартных методов работы с таблицей на работу через Epplus скорость шаблона выросла в десятки раз. Почему так происходит - мы сначала в файле, который в буфере, делаем все необходимые изменения, и только потом его сохраняем один раз, а не каждый раз нужно сохранять при изменении каждой ячейки.
Подводя итог
Мы предусмотрели работу с блэк листом для ссылок на товары и с блэк листом для свойств. Теперь можем сделать парсинг разных поставщиков, спарсить любые товары и корректно их выгрузить для правильно настройки фильтра.
Я применяю этот шаблон для работы с реальными интернет магазинами, но ничего не мешает делать интернет магазин по типу https://regmarkets.ru/ который просто аккумулируют товары на сайте, собирают трафик и со страницы товара переправляют пользователя на партнерский интернет магазин.
Важно отметить, что это не "черный" метод продвижения и никаких санкций за него не последует. Не стоит переживать за баны таких страниц и сайтов, так как мы не нарушаем никакие правила ПС, а наоборот, помогаем пользователю быстрее найти интересующий его товар.
Также этот метод хорошо работает, когда появляется трендовый товар и все пытаются продвинуть свои сайты по очевидным ключам с названием товара. Сделав быстро парсинг конкурентов, мы делаем максимально широкий ассортимент, и за счет применения фильтров охватываем ключи по которым никто не продвигается, ключи которые сервисы типа wordstat вообще могут не показать.
P. S. Я уже достаточно долго работаю с ZP, но прямых денег он мне не принес ни рубля. Но сколько он мне сэкономил времени, сколько выполнил таких задач, до которых без него даже и не додумался - сложно сосчитать. И как приятный бонус начал по необходимости изучать C#, совмещая приятное с полезным.
- Номер конкурса статей
- Одиннадцатый конкурс статей
- Тема статьи
- SEO / PPC





