Парсим Алиэкспресс в Drupal

Шаг 1. Устанавливаем модуль и парсим алиэкспресс

1.1. За модулем идем на сайт xandeadx.ru. Если вы об этом сайте еще не знаете, не теряйте его. Очень хороший сайт для любителей drupal. Чтобы работать с модулем, нужно знать хоть немного PHP. Это как раз один из тех языков, который я практически не знаю, однако я справился. Скачиваем модуль по ссылке выше, устанавливаем как обычно.

1.2. Создаем тип материала. Я назвал его Ali. Поля создал такие:

Категория / field_category / Ссылка на термин / Автозавершение ввода, количество значений неограничено. 
Соответственно создал словарь таксономии Категория товара.

Валюта / field_currency / Текст / Текстовая строка, максимальная длина поля 10 символов.

Стоимость / field_cost / Текст / Текстовая строка. Почему-то у меня не получилось загрузить данные в числовые поля. Но это не столь важно.

Скидки / field_sale / Текст / Текстовая строка.

Изображение / field_picture / Изображение / Изображение.

url / field_url / Длинный текст / Многострочное текстовое поле, Обработка текста - Простой текст.

1.3. Идем на Aliexpress за ссылками. Допустим нам нужны шторы. Идем в категорию Для дома и сада / Для дома / Шторы. Я не хочу выкладывать миллионы товаров. Я хочу выбрать товары более-менее надежных продавцов (Рейтинг продавца), да к тому же, со скидками. Соответствующий фильтр я и включил. И еще включил бесплатную доставку, и высший рейтинг, а товары вывел списком. Получил 161 товар. Мало? Можно выключить распродажу. Но рейтинг продавца не стоит. Лучше предлагать посетителям хороший (более или менее) товар. Получили список товаров.

  

Переходим на 2-ю страницу в нижней части, чтобы понять как формируются номера страниц.

http://ru.aliexpress.com/premium/category/202000472/1.html?needQuery=n&isFreeShip=y&shipCountry=ru&isFavorite=y&isAtmOnline=n&isOnSale=yes&SortType=total_weight_score_desc&prNum=0

Оказалось, что номера страниц не как обычно в конце линка, а в середине: ...category/202000472/1.html..., ...category/202000472/2.html... и т.д. Ну и ладно. Ссылка, кстати, существенно сократилась. Теперь вместо 1.html вставляем [mask:1,3].html, таким образом указывая, что нам нужно отсканировать страницы с первой по третью. Ссылка у нас получится такая:

http://ru.aliexpress.com/premium/category/202000472/[mask:1,3].html?needQuery=n&isFreeShip=y&shipCountry=ru&isFavorite=y&isAtmOnline=n&isOnSale=yes&SortType=total_weight_score_desc&prNum=0

Точно так же, выбираем другие категории и товары, если надо, по теме нашего сайта.

1.4. Идем в admin/structure/parser_jobs, добавляем job parsing.

Стартовый URL – адрес страницы, полученной на алиэкспресс, п. 3. Для начала вставим один только урл, потом добавим остальные.

Глубина 1.

Белый список адресов: http://ru.aliexpress.com/item/*.html

Черный список адресов очищаем.

Код проверки для дальнейшего парсинга страницы: return $doc->find('div.detail-page')->length() == 1;
Тип сущности: Содержимое, подтип – наш тип материала: Ali.

PHP код для поля Заголовок: return $doc->find('h1.product-name')->text();

PHP код для поля Автор (я использовал админа): return 1;

PHP код для поля Категория:
$terms = array();
foreach ($doc->find('.ui-breadcrumb a') as $a) {
$terms[] = pq($a)->text();
}
return $terms;

PHP код для поля Валюта: return $doc->find('[itemprop="priceCurrency"]')->text();

PHP код для поля Изображение: 
if($doc->find('.ui-image-viewer-thumb-wrap a')->length>0) {
return array(
'file' => $doc->find('.ui-image-viewer-thumb-wrap a img')->attr('src'),
);
}

PHP код для поля url: return $page_url;

PHP код для поля Стоимость: return $doc->find('#sku-discount-price')->text();

PHP код для поля Скидки: return $doc->find('#sku-price')->text();

1.5. И у меня все. Если у вас есть еще поля, делаем по аналогии. Поясню как и откуда все это берется. Открываем любую страницу товара на али. Правой мышкой по заголовку, Просмотр кода элемента (в хроме).

Смотрим как формируется заголовок, вернее какие классы нам нужно искать.

Видим <h1 class="product-name" itemprop="name">, т.е. надо искать H1.product-name. Соответственно и запрос: return $doc->find('h1.product-name')->text();.

Все остальные поля, которые нам нужны делаем по аналогии. Нажимаем кнопку "Сохранить и начать". Если все сделали правильно, увидим что-то типа этого.

 

Шаг 2. Регистрируемся в партнерке и получаем ссылку

Изделия загрузили. Если для кого-то этого достаточно, прекрасно. Можете работать на китайцев – пусть они зарабатывают. Лично я хочу зарабатывать сам на китайских товарах. Для этого нужна одна мелочь – подключиться к партнерке.

2.1. Идем на сайт ePN. Регистрируемся. Добавляем свой сайт на странице "Мои площадки". Модерация, обычно, проходит быстро.

2.2. Далее Идем в Инструменты / Мои креативы. Нажимаем "Получить DeepLink". Заполняем поля.

Название креатива – ваше название вашего креатива.

Тип креатива – DeepLink.

Страница Aliexpress – любая страница любого товара на али.

Сохраняем.

2.3. Это именно то, что нам нужно – ссылка. Нажимаем кнопку в нашем креативе "Получить код DeepLink".

  

В принципе, там все понятно написано. Нужная нам ссылка:http://alipromo.com/redirect/cpa/o/b668a5f9aa1374fc173cf1e7098d8cfe

 

Шаг 3. Подключаем магазин и зарабатываем деньги

Осталось создать магазин. Я думаю, вы знакомы с модулем views. В нем все это сделать просто.

Как вы уже поняли, кнопка "Купить", как и клик по картинке переносит нас на сайт Алиэкспресс, но по нашей партнерской ссылке. Вот как выглядит вьюха страницы со списком товаров.

Вкратце поясню как я сделал ссылку.

3.1. "Содержимое: url" не отображается, включена птичка "Исключить из вывода", Включаем "Перезаписать результаты и суем туда нашу ссылку таким образом:

т.е. мы сформировали ссылку полученную в партнерке "http://alipromo.com/redirect/cpa/o/b668a5f9aa1374fc173cf1e7098d8cfe", добавили конструкцию, как они же нам советовали "?to=" и вставили прямую ссылку на товар, которую спарсили с Алиэкспресса на первом шаге или шагу "[field_url]".

3.2. Соответственно поле "Содержимое: Изображение" мы можем вывести в виде ссылки:

3.3. И добавить кнопку Купить – "Глобальный: Пользовательский текст"

3.4. Все остальные поля делаем как хотим.

Если уж совсем проблемы со вьюхой, пишите в комментариях – экспортну свою. Но она у вас будет работать только при условии, что вы все поля и тип материала сделали как у меня.

P.S. Если вы сами закупаетесь на алиэкспрессе, то в партнерке ePN напишите в техподдержку, что вы хотите сами покупать товары по своим ссылкам. Они не против, но хотят, чтобы мы об этом им сообщали. Таким образом, я зарабатываю на своей жене и детях, которые покупают там всякое барахло. И на себе тоже...

 

Источник: https://web.gavzav.name
More:https://web.gavzav.name/blog/vitrina-tovarov-aliexpress-na-drupal-parsim-aliekspress