Всем привет. Я очень часто ищу решение для своих задач на форуме, поэтому тоже хочу поделиться своими некоторыми наработками, которые хоть и не приносят денег напрямую, но позволяют экономить время и решать нестандартные задачи. В статье речь пойдет, о формировании файла со свойствами товаров для загрузки в интернет магазин для дальнейшего продвижения по НЧ ключам.
Вступление
Не для кого не секрет, что наиболее дешевым, эффективным, абсолютно "белым" и подходящим для как новых, так и популярных интернет магазинов является работа с фильтрами товаров.
Посмотрим на примере Mvideo
Наличие подобного рода фильтров помогает проще пользователю выбирать товар, улучшает поведенческие факторы страницы, добавляет вхождения ключевых слов, уникализирует страницу.
Также с настройками фильтра можно формировать физический url с настройками meta тэгов для продвижения по НЧ запросам. Даже у Mvideo эта функция не настроена - при изменении параметров фильтра, url не изменяется. Конкуренция по таким запросам будет значительно ниже, чем по банальным с названием категории (купить ноутбук, или по названиям моделей - Ноутбук HP Pavilion 17-ab427ur 5MH95EA).
Возьмем категорию ноутбуки. Пример товара https://market.yandex.ru/product--noutbuk-asus-rog-strix-hero-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--noutbuk-asus-rog-strix-hero-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;
}
});
2. Долгая работа стандартных методов работы с таблицами
Когда пришлось разобрать параметры у 30 000 товаров, шаблон у меня работал около 10 дней. Он работал в 1 поток. Потом переделал его в многопоток, но это не решило проблему, так как самое узкое место - это запись данных в таблицу.
Соответственно в многопотоке разбор происходит быстро, а вот сама запись - очень долго. Даже отмена Lock (так как кол-во строк у нас не меняется, можно было не бояться утери данных) не помогла. Пришлось искать другое решение. И оно было найдено - это библиотека Epplus.dll для работы с Excel файлами.
Другой участник конкурса уже описывал работу с этой библиотекой, а также парсинг с помощью Xpath, думаю нет смысла повторяться, как добавить ссылку на библиотеку и т. п.
В юзинги добавляем
Код:
using OfficeOpenXml;
using OfficeOpenXml.Style;
Подводя итог
Мы предусмотрели работу с блэк листом для ссылок на товары и с блэк листом для свойств. Теперь можем сделать парсинг разных поставщиков, спарсить любые товары и корректно их выгрузить для правильно настройки фильтра.
Я применяю этот шаблон для работы с реальными интернет магазинами, но ничего не мешает делать интернет магазин по типу https://regmarkets.ru/ который просто аккумулируют товары на сайте, собирают трафик и со страницы товара переправляют пользователя на партнерский интернет магазин.
Важно отметить, что это не "черный" метод продвижения и никаких санкций за него не последует. Не стоит переживать за баны таких страниц и сайтов, так как мы не нарушаем никакие правила ПС, а наоборот, помогаем пользователю быстрее найти интересующий его товар.
Также этот метод хорошо работает, когда появляется трендовый товар и все пытаются продвинуть свои сайты по очевидным ключам с названием товара. Сделав быстро парсинг конкурентов, мы делаем максимально широкий ассортимент, и за счет применения фильтров охватываем ключи по которым никто не продвигается, ключи которые сервисы типа wordstat вообще могут не показать.
P. S. Я уже достаточно долго работаю с ZP, но прямых денег он мне не принес ни рубля. Но сколько он мне сэкономил времени, сколько выполнил таких задач, до которых без него даже и не додумался - сложно сосчитать. И как приятный бонус начал по необходимости изучать C#, совмещая приятное с полезным.
- Тема статьи
- SEO / PPC
- Номер конкурса статей
- Одиннадцатый конкурс статей
Вложения
-
60,4 КБ Просмотры: 327
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.