Размер
Проверка фото из отзывов на AliExpress
Play

Проверка фото из отзывов на AliExpress

На AliExpress пользователи очень часто оставляют отзывы о товарах. Обычно это рассказы о качестве товаров, личные впечатления об использовании и комментарии о сервисах и сроках доставки.

Но самый большой интерес и пользу представляют фото с распаковкой товаров. Девушки охотно демонстрируют фото себя в купленном нижнем белье, а парни выкладывают фото комплектации покупки.

По фотографии можно сразу увидеть качество товара в реальности. Которое в большинстве случаев очень сильно отличается от того что рекламируется.

Но есть одно «Но». Фото в отзывах ужасно маленького размера и нет галереи, где можно прокликать все фото за один раз. Пример того, как выглядят фото в отзывах на AliExpress — bit.ly/2C7myX3

Чтобы исправить ситуацию я решил написать свой парсер фото из товаров и сделать плиточный дизайн в стиле Pinterest.

На момент написания статьи доступны следующие фичи: 1. Парсер фото из отзывов по URL товара.2. Поиск товаров с максимальным рейтингом по ключевому слову.3. Вывод Топ продаваемых товаров на AliExpress за неделю.

Чтобы понять зачем это все нужно, давайте посмотрим на выдачу комментариев на AliExpress и Alipic — bit.ly/2o1e1Tg

Товар на AliExpress — bit.ly/2nI7v3TФото отзывов на Alipic — bit.ly/2j7zoRe

Далее расскажу о технической реализации парсера фото на php.

Страница продукта состоит из двух блоков — bit.ly/2yqVujg1. Информация о товаре (цена, название, рейтинг, скидка, ссылка на магазин). Реализовано через API AliExpress.

2. Фото отзывов. Реализовано с помощью прямого парсинга с помощью CURL + SimpleDom.

Для получения API нужно зарегистрировать на AliExpress Developer. Проверка акаунта заняла 5 дней.

Парсим фото из отзывов по URL товара.

В API AliExpress нет доступа к фото из отзывов. Потому смотрим откуда Али вытягивает комментарии:

Открываем страницу любого продукта (в примере — bit.ly/2j7zoRe), запускаем девелоперскую консоль и ищем блок с комментарием — bit.ly/2jSjrLW

Как видим, Али подгружает комментарии в <iframe> . Это очень хорошо, так как не нужно будет грузить полностью всю страницу.

Параметры которые важны:productId — уникальный айдишник каждого товара.withPictures — включить, выключить комментарии с фото. Значения true,false.

Урлы товара бывают разного формата. Для получения productId из урла используем regexp:

После получения productId готовим ссылки для парсинга:

Далее нам нужно параллельно загружать API запрос и парсить страницу с комментариями.Функция параллельного парсинга:

Получение контента страниц в массив:

Теперь парсим информацию о товаре, которую получили в json формате:

Для парсинга страницы комментариев используем SimpleDom библиотеку и обращаемся к DOM элементам страницы:

Для отрисовки фото в стиле Pinterest использовалась библиотека Mansory.JSИсходный код парсера на github — github.com/. ​ter/ali_exp_img_parse.php

В избранное В избранном 0

27 комментариев

Привет. Все супер, но так и не нашел где он этот AliExpress Developer что бы API попросить)))

Ну все давно юзают мобильное приложение Али, там все чётенько с этим, хотя и без галереи не вижу проблем- размер фото достаточен, особо интересную можно и в отдельной вкладке открыть, делов то.

Совсем неприкрытый маркетинговый ход со знанием специфики аудитории :)

Ну классика жанра к такой хрени прикручивать экстеншен браузера. Ибо не станет юзер ходить на какой-то сайт и вбивать ссылки, у него лапки.

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

Код набагато краще виглядав би на гітхабі а тут тільки ссилки, бо так доволі незручно читати.

Прикольно конечно. Этакий программерский подход:) Гуманитарий нажмёт правую кнопку мышки и выберет «показать изображение»

Молодец. Но:— где свойства?— где шаблоны? — где partial-классы?— где расширения методов класса?— где скрытая имплементация интерфейсов?— где перегрузка параметров функций?— где нормальное потребление памяти приложением?— где быстрая работа приложения?— где нормальные иде, с полноценными дизайнерами?— где пользовательские value types?— где методы у инстансов value types?— где var и анонимные типы— где перегрузка операторов?

И вообще какого хрена.

можно короче: кг/ам

А зачем это все вменяемым и свободным разработчикам собственных продуктов? Фреймворки придуманы, чтобы из заказчиков деньги доить. Как и OOP с OOD. IT давным-давно уже пытается усложнить и переусложнить себя самое. Но главное ведь не лизнуть авторитетам, а написать код, решающий поставленную задачу. Не код, который будет решать целый комплекс возможных осложнений при решении возможных вариаций поставленной задачи так как такой г*код нужен отнюдь не разработчику, а заказчику, оптимизирующему рабочее время разработчика в свою пользу. Все, что не относится к решению текущей задачи выбрасывайте из кода нахрен ибо эти штуки вредны и опасны — стремительно приближают дедлайны. Завтра будет новый день и новый код — говорите себе. И даже, в идеале, лучше копипастить, чем рефакторить. Не бывает двух одинаковых бонсай. Даже в самом начале это два разных зерна или веточки. Так что или вы разбираетесь в программировании или вы используете дизайн паттернс.

Ну не совсем. Например в коде выше вместо голого курла можно газзл заюзать — уже читать приятнее бы было.

и ни одного паттерна проектирования

і не кажіть, куме

— где костыли?— где руль и педали?— собаки пятая нога — где?

На PHP можно писать довольно быстрый код. Конечно, не такой резкий, как заточенный под конкретную задачу инстанс nodejs. Можно банально придерживаться паттерна mvc и не погрязнуть в паутине спагетти-скриптов с сотнями инклюдов. Код будет хотя бы структурирован и изолирован от мусора. Это идеальное состояние, если большую часть рабочего времени вы добавляете в общую свалку новые, независимые друг от друга конвертики с тухлятиной.Можно написать классы объектов, там где они необходимы и наполнить их методами. Опять же, всё ради структурирования кода, для вполне сносной и быстрой навигации по разрастающейся выгребной яме проекта.Можно навесить плюшки в виде аякса, где это уместно, и местами перенести генерацию контента вовсе на клиент, вместе с тем сэкономив десятки тяжёлых запросов на отрисовку страницы целиком.Можно придти к мысли, что mysql с её слоупочными table locks и transactional safety и с её возможностью масштабирования только при помощи анальных расширителей не очень-то, собственно, и нужна в большинстве задач. Только это всё не нужно. Ваш сайт, в общем, далеко все не идеально. Но и не все так мрачно, как описано: сайт развивается, у него есть пусть небольшое, но стабильное коммьюнити и, главное, есть пользователи, которые будут зависеть от этого сайта, поэтому сильно заинтересованы в его улучшении, а с недавних пор могущие в этом улучшении участвовать.

📎📎📎📎📎📎📎📎📎📎