Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

4 часа назад, Nomandvs сказал:

Аплодирую =)

За одну только вкладку прямого парсинга в ИМ готов купить две копии. 

Бери сразу 10, потом загонишь кому нить))) Чувствую, Канары по тебе плачут.

 

Буду за Вами.

Змінено користувачем pomansur
  • +1 1
Надіслати
Поділитися на інших сайтах


@Nomandvs @pomansur

тогда я буду за вами :)

Сегодня произошла накладочка с инструкцией, поэтому выкладываю сырые описания новых страниц здесь и ухожу спать.
Как проснусь сделаю последние приготовления и выложу вторую версию. 
Постоянно нахожу мелочи которые хочется доработать, и новые функции. Не могу остановится. Так что держите предвкушение !

  • +1 1
Надіслати
Поділитися на інших сайтах

Парсинг в ИМ
 

Ну вот вы и дошли до самого сложного интересного. Заварите чай и начнем знакомится с данной вкладкой. 
Эта вкладка наверное самая сложная для описания всех возможных вариантов настроек. Честно говоря я сам до конца не знаю все варианты событий которые можно сделать при помощи этих настроек. Это может звучит глупо, но это правда. 
Суть в том что я потратил много времени на записывание и реализацию всех возможных вариантов парсинга, и пришел к выводу что луче создать много маленьких инструментов которые в последствии можно будет между собой смешивать. Больше 60% всех задумок я отказался реализовывать в начальной версии 2.0 сильно много времени уходит. Но я их реализую постепенно. 

Знакомство с интерфейсом. 

pr_im1.thumb.png.350f4a695d0fd604008d9055ae781020.png

1. Действие
Вы можете выбрать три типа действий которые будет выполнятся. 
а) Добавление нового товара.

б) Обновление товара

в) Добавление и Обновление товара.

2. Идентификатор товара
Вы можете выбрать в качестве идентификатора товара один из трех вариантов.
а) Код товара (он же model)
б) Артикул (поле sku)
в) Название (Поле name) Обратите внимание что использование имени товара в качестве идентификатора не рекомендуется, может привести к появлению дублей товара, или обновлению не того товара что вам нужно. Имя является не уникальным значением. 
Это поле будет использоваться для определения товара в магазине.

Допустим вы выбрали идентификатором Артикул (sku)  и выбрали действие добавлять товар, если товар с таким артикулом уже есть в магазине модуль его не добавит. 
Если товара с таким артикулом нету в магазине, тогда модуль создаст это товар. 
То же самое касается действия обновить. Если есть то товар обновится, если нет тогда модуль пропустит данный товар.
Что касаемо действия Добавлять и обновлять, все аналогично. Только если товара нет он создастся если есть обновится. 

3. Пауза 
Вы можете указать любую цифру от нуля. и до .... 
0 - Это значит что при парсинге паузы не будет. Но если вы укажите к примеру 3 - тогда после парсинга одной ссылки модуль будет замирать на 3 секунды. По истечению 3 секунд приступать к парсингу следующей ссылки.
Это необходимо что бы создать видимость что вы обычный пользователь который смотрит сайт. Много сайтов могут банить вас за аномальную активность, и это функция первый шаг в сторону обхода блокировок. 

 

4. Вывод количество ссылок
В данном поле вы можете видеть сколько ссылок на парсинг у вас есть, и сколько ссылок спарсено.
Ссылок в очереди: 150 - Количество не обработанных ссылок. 
Обработано ссылок: 0 - Количество спарсенных ссылок. 
В данном примере можно видеть что еше не запускался парсинг, и обработанных ссылок 0

5. Кнопка Пред просмотр. 
При нажатии на кнопку пред просмотр вы будете перенаправлены на страницы пред просмотра товара. Полезная страница что бы проверить свои настройки, и произвести корректировки. 

6. Кнопка Поиск замена
При нажатии вы будете перенаправлены на страницу настроек поиск замена.

 

7. Кнопка Перезагрузить ссылки. 

При нажатии данной кнопки все ссылки которые были уже спарсены, и находятся в красном списке Обработано ссылок будут снова добавлены в список Ссылки в очереди. Это необходимо для того что бы произвести повторно действие по всем собранным ссылкам. Допустим для ежедневного обновления информации в вашем магазине.

8. Блок с данными.
В данном блоке представлены все данные с которыми работает модуль. На данный момент.
Обратите внимание здесь нету поля опции, потому что в версии 2.0 модуль не умеет работать с опциями. Данный функционал уже разрабатывается. 

 

9. Блок настроек.
Здесь представлен блок настроек, у каждого поля из пункта 8 есть свои настройки. 
И сейчас мы о них детально поговорим. 

 

10. Кнопка Обновить страницу.


11. Кнопка Сохранить настройки.

Нельзя покидать вкладку Настройки парсинга в ИМ не нажав на данную кнопку. Все настройки которые не были сохранены при переходе будет удалены. 

 

12. Остановка парсинга.
Если вы запустили парсинг, данной кнопкой вы можете остановить процесс. После повторного нажатия на кнопку старт, модуль продолжит работу с того места где остановился. 

 

13. Запуск парсинга. 
После того как настроите все поля может нажимать и модуль начнет загружать, или обновлять товары. 

 

14. Прогресс бар.
В момент парсинга вы можете наблюдать сколько ссылок обработано, а сколько еше осталось. Эта строка загрузки показывает вам наглядно процесс выполнения работы модулем. 
Обратите внимание что прогресс бар появляется только когда вы нажимаете старт парсинга, и исчезает когда вы жмете Пауза парсинга. 

Основное знакомство с интерфейсом закончили. 

 


Настройки полей данных: Артикул, Название, Цена и т.д.

Это самая интересная часть настройки. Ниже я разберу настройку всех полей. Но перед тем как перейти к разбору настроек вам нужно понять пару важных моментов. 
С них я и начну. 

Я поделил данные в товаре на два типа.
1. Простые
2. Сложные.

К простым относятся такие данные как

Код товара [model]

Артикул [sku]

Название 

Цена
Количество
Производитель

Описание 

К сложным данным я отнес:
Категории
Фото
Атрибуты

 

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

У категории сложные все иначе. Поскольку к примеру изображения может быть 1 а может быть и 100, также категория может быть одна, а может быть целая структура.
Атрибуты так вообще там одна часть данных должна говорить что будет именем атрибута, а что его значением. 
 

Для этого я разработал вот эту строку, она универсальная. 
pr_im2.thumb.png.1d9b911bf53d1db72c50f569048c4437.png

К примеру вы можете записать в это поле слово Привет мир! И все товары которые будут парсится получат название Привет мир!
Вот пример.

  Скрыть контент

pr_im3.thumb.png.7d394d80e39f3b664c1f32d708871663.png
 

Результат 
pr_im4.thumb.png.2b77dde4813333767dea7abfa397dbe6.png

 


Но туда можно подсовывать данные парсинга, которые вы настраиваете на второй вкладке.
Для этого вам нужно написать {gran_id}

Где id это номер параметра парсинга что вы настраивали на вкладке Настройка парсинга. 
Я понимаю что это кажется чем то сверх сложным но для удобства я создал вам выпадающий список где вы можете увить Название границы парсинга, их id и когда вы выбираете границу она автоматически заполняет полу. То есть вручную вам ничего прописывать не нужно!

 

pr_im5.thumb.png.4abf5c3c299150071029005aa7f52acc.png

 

Но если хочется, вы можете это делать вручную, я не хотел вас ограничивать :)

Как заполнить разобрали теперь к самому веселому переходим.
Можно в данном поле использовать как границы парсинга, так и текст введенный вручную. Так и вперемешку!

То есть допустимо любой вариант заполнения. 
К примеру в название указать не одну границу парсинга, а вот так.  
{gran_82} | От производителя = {gran_94} | По цене = {gran_83}

Результат будет такой. 
 

  Скрыть контент

pr_im6.thumb.png.1fa4bbd37d69597afec8a22cfa1747c2.png

 

И это касается всех полей. Имени, артикула, или фото. Вообще всех.
Вы теперь можете парсить несколько описаний в магазине миксовать их и заполнять себе в одно описание. Я даже не представляю все варианты использования но мне кажется их просто неимоверно.

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

  Скрыть контент

pr_im10.thumb.png.9b57e8a7d0af3f71a8e382658cd441ed.png




Так теперь переходим к сложным данным. 

Объясню на примере Изображений. 
Изображение может быть одно, а можете быть и сто. Значит ссылка на каждое фото должна быть отдельно определена. 
Для того что бы работать с сложными границами представьте что вы парсите в эксель файл. И вам нужно добиться что бы новое значение было в новой ячейки экселя. 
Для этого мы используем спец разделитель {csvnc} Для сложных данные все тоже самое. :) Вуаля, все кто пользовался модулем первой версии можете выдыхать вы уже на коне ! :grin:
Для того чтобы загрузить много фото вам нужно разделить их {csvnc} и все равно на каком этапе вы это сделаете. 
Можете через повторяющие границы парсинга, или через поиск замену какой то кусок кода заменить на {csvnc} 

  Скрыть контент

Настройки повторяющихся границ парсинга

pr_im7.thumb.png.b982cecaa4b172478b21be3608f093d8.png


Поиск замена
pr_im8.thumb.png.f0ad437e3682078f2490c5cbbc6cddea.png


Или даже напрямую в поле прописать 
{gran_id}{csvnc}{gran_id} - И это тоже будет работать. 


Одним словом не важно как вы это добьетесь. Решайте сами в какой ситуации как вам поступать удобнее. Гибкость наше все :)

Так же обратите внимание что в настройках повторяющихся границ не обязательно указывать {csvnc} Все разделители по умолчанию в парсинге в им, считаются как {csvnc} сделано для того что бы одни и теже границы можно было парсить как в файл, с своим разделителем, так и в магазин. Все для вас.

Я думаю главный сообщение я смог до вас донести. 

Разбор настройки полей парсинга в ИМ

 

Код товара

Формируется как простые данные. pr_im9.thumb.png.25ead313147431080ed49fff4df8845b.png
Действие работают только при добавлении нового товара. Пока не придумал обновления поля model но будет, хочу собрать пожелания пользователей. 

 

Доступные действия:
Создавать по умолчанию При создании по умолчанию в поле Код товара, она же model будет записан id товара. 
Парсить Тут все просто что спасите то и запишется. 

 

Артикул (sku)

Относится к простому типу. 

pr_im11.thumb.png.802f623ffb48ee42ee2e1142ff48b197.png


Действие работает только при обновлении товара. 
Обновлять
Не обновлять. 

 

Название

Относится к простому типу.

pr_im12.thumb.png.27e7c07f0145402dd8730cc39f31e2d7.png


Действие работает только при обновлении.
Обновлять
Не обновлять


Цена

Относится к простому типу.

pr_im13.thumb.png.c449a4c07f54e0db4317ca7ed0105616.png

 

Действие работает только при обновлении.

Обновлять
Не обновлять

 

Количество

Относится к простому типу.

pr_im14.thumb.png.11fcce8fe9b8507fda5d66df309d94f9.png

 

Действие работает только при обновлении.

Обновлять
Не обновлять

 

Значение по умолчанию
Это поле используется если основное не заполнено, либо если в момент парсинга на определенном товаре не было обнаружено нужных данных по границе парсинга, что вы указали. Но можно как на скриншоте в основное поле просто вести значение и не парсить, и тогда все товары получат это значение. 

Производитель. 
Относится к простому типу данных.

pr_im15.thumb.png.dce37589b0443f7bc9c065c7638ec181.png

 

Действие
Создать/Добавить/Обновить - Действие работает как при добавлении, обновлении товара. В магазине будет создан производитель, если такого не было раньше. И товар будет привязан к своему производителю. 

Только обновлять - Действие работает только при обновлении товара, если в магазине есть уже производитель то он привяжется к товару. Новые модуль создавать не будет. 

Нет - Не производить никаких действий с производителем. Ни при обновлении ни при добавлении товара. 

 

 

Описание
Относится к простому типу данных.

pr_im16.thumb.png.8d01bae3c9571a508cd7a787a36529de.png

 

Действие работает только при обновлении.
Обновлять
Не обновлять


Значение по умолчанию
Это поле используется если основное не заполнено, либо если в момент парсинга на определенном товаре не было обнаружено нужных данных по границе парсинга, что вы указали.

 

 

Категории
Относится к сложным данным.

pr_im17.thumb.png.0367c5ed72482aa8ecf1f2d0d129f35f.png

Действие
Создать новые | Привязать товар - выбрав этот пункт модуль создаст категории которые вы парсите. Работает при добавлении и обновлении. 
Привязать товар | Не создавать новые - Модуль разместит товар только в тех категориях которые у вас созданы, и совпадают с теми что вы парсите. При обновлении если придут новые категории и у вас их нет, то категория в товаре не обновится. При добавлении товара если такой категории нет тогда товар создастся но не будет привязан ни к одной категории. 

Не создавать новые | Не обновлять [Не рекомендую, товар получит категорию с id = 0]  - При создании и товар не будет размешен ни в одной из существующих категорий. 

По умолчанию Вы можете выбрать категорию которая есть у вас в магазине и все товары которые вы парсите если нету данных по категориям получат эту категорию.
Либо если настройки категории не указаны. 
 

 

Фото
Относится к сложным данным.

pr_im18.thumb.png.1112691e197fe4cf16eb28c0fd25e91f.png

 

Действие 
Добавить при создании - Создает товар с фото.
Добавить при создании и обновлении товара - Добавит фото в все новые товары. А при обновлении к уже существующим товарам добавит доп фото. 

Обновлять [Заменит все фото у товара][Изображения не удаляются с сервера!] - Заменит фото в товаре при обновлении. Обратите внимание что физически изображения не удаляется, потому что мы не знаем привязано это изображение к другим товарам или нет. 

Нет - не работать с фото. 


По умолчанию можно задать фото которое будет использоваться в случаи отсутствия фото на сайте доноре. 

 

Директория для фото - Здесь вы указываете в какую папку складывать фото что парсятся.

Все фото размешаются по стандарту опенкарт в директории /image/catalog/ . Директории вручную создавать ненужно модуль сам создать если их не будет. 
Допускается возможность в вода много уровней. К примеру можно в вести product и все фото что парсятся будут размешены в директории /image/catalog/product/
А можно указать так. /product/men/short/ и все фото будет размешены в директорию /image/catalog/product/men/short/ 
 

Подпапки
Значение Да значит в что в той директории что вы указали в поле Директория для фото , будут созданы под директории с именами 0,1,2,3,4,5,6,7,8,9
И все изображения будут размешены в этих директориях. Это нужно что бы снизить нагрузку на дисковую подсистему, если у вас много изображений и товаров. 

 

Нюансы 
Для того чтобы модуль мог скачать фото, ему нужно скормить границу парсинга в которой будет полный путь к фото. С http ...
Этого можно добиться используя поиск замену, и вставляя в начала границы доменное имя донора. Поскольку как правило у доноров относительный путь к к фото без указания доменного имени.
 

 

Атрибуты

Относится к сложным данным.

pr_im19.thumb.png.63ad5378bb0d733dc60fdf4de2d5188d.png

 

Действие
Создать/Добавить/Обновить - Создает новые атрибуты. Добавляет в товар при обновлении, и добавлении товара. 

Добавить/Обновить - Добавляет в товар атрибуты которые уже есть в магазине, и обновляет значение тех что есть у товара.

Обновить [Только существующие в товаре] - Если в товаре создан атрибут, и он есть на сайте доноре, то его значение модуль обновит. 

Удалить из товара создать заново - Удаляет атрибуты из товара. И записывает заново что есть на сайте доноре. 

Нет - Не работать с атрибутами. 

 

Нюансы
Для того что бы модуль правильно создал атрибут и присвоил ему значение нужно данные парсинга атрибутов привести к виду. 
Название{csvnc}Значение{csvnc}Название{csvnc}Значение{csvnc}Название{csvnc}Значение

Выглядит страшно, но делается просто.
Либо через повторяющие границы парсинга, либо через поиск замену. 

Я сделал в последнем примере так.
 

Спойлер

pr_im20.thumb.png.1d249a4e0a036d7fd6b7addf03caecf9.png


Конец.
Надеюсь смог внятно объяснить. Может криво расписал, но как смог. Если остались вопросы задавайте буду отвечать. 
Надеюсь вам понравится, я старался. :oops:

  • +1 1
Надіслати
Поділитися на інших сайтах

Логи

 

Сейчас в логи пишутся сообщения об создании товара, создании новых категорий, атрибутов, об загрузке изображений.
Как это выглядит вы можете видеть на скриншоте ниже.
logs1.thumb.png.74d7c4e592b87872c08519b6549d0b43.png

 

При обновлении товара вы получите более полные логи о том какие действия производил модуль. 

logs3.thumb.png.3f85b52b5d3ae9e77bb73428c4dc6bf0.png

 

Интерфейс 

Здесь все довольно просто. У вас есть три копки.

logs2.png.38102e99b42fc4a324ff084316938d3b.png
1. Обновить логи, то есть что бы модуль загрузил все новые логи. Если вдруг у вас в одной вкладке идет парсинг, а в другой вы в режиме реального времени будете просматривать лог работы модуля. 

2. Скачать лог файл. Из за особенности работы веб протокола я ограничил просмотр лог файлов которые весят более 5мб Но вы можете скачать такой файл себе, и открыть лобым удобным редактором. 
3. Очистить логи. (думаю здесь пояснения не нужны.)

 

В модуле SimplePars вы можете создавать сколько угодно проектор и парсить любое количество сайтов доноров. По этому каждый проект имеет отдельные логи.
Допустим у вас два проекта, и в них вы парсите разные сайта. Так вот у каждого из проектор свой отдельных лог файл.


Логи размешаются в стандартной для Оpencart директории, а именно /system/storage/logs/simplepars_id-3.log
Где цифра 3 это id проекта который записывает логи в этот файл. Таких файлов будет столько сколько у вас проектов. 


Теперь давайте разберем основные логи.
 

2019-04-02 23:16:19| Парсинг : УСПЕШНЫЙ ЗАПРОС Код ответа [200] Ссылка | https://svetavto.com.ua/index.php?route=product/product&path=59&product_id=2334
2019-04-02 23:16:19| ->[ОБНОВЛЕН ТОВАР] ID = 1427 | Идентификатор sku = [005954]
2019-04-02 23:16:19| -->Обновление | Название = LED H11-H8 Type 15 CSP C-N_30W, 4000Lm_5700K (комплект)
2019-04-02 23:16:19| -->Обновление | Цена = 700
2019-04-02 23:16:19| -->Обновление | Количество = 999
2019-04-02 23:16:19| -->Обновление | Производитель id = 23
2019-04-02 23:16:19| -->Обновление | Описание = {описание в логи не пишется}
2019-04-02 23:16:19| -->Обновление | Категория id = 211 Адрес = LED (Светодиоды)
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Производитель: = CYCLON
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Цоколь = H11-H8
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Напряжение  = 12-24V
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Тип св. элемента = CSP
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Драйвер (cтабилизатор напр.) = Да
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Степень защиты = IP65
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Комплектность = 2 шт.
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Световой поток = 4000 Lm
2019-04-02 23:16:19| -->Обновление | Атрибут обновлен в товаре Потребляeмая мощность = 30W

Первым всегда приходит ответ от сервера откуда мы парсим. Либо удача либо нет.
В данном случаи:
2019-04-02 23:16:19| Парсинг : УСПЕШНЫЙ ЗАПРОС Код ответа [200] Ссылка | https://svetavto.com.ua/index.php?route=product/product&path=59&product_id=2334

Далее уже идет сообщение, либо обновления товара либо добавление нового. Такие строки начинаются с -> 

Здесь вы можете узнать об обновлении или добавлении нового товара. Его id в магазине, и его идентификатор. Идентификатор может быть как 

Артикул (sku)
Код товара (model)
Название товара (name) - не рекомендую использовать определение товара по имени. Это может привести к дублям товаров, и обновлением не тех товаров.

Такой подход легко поможет вам найти этот товар в интернет магазине :) 

 

Так же под символом -> идут сообщения при скачивании фото, создания производителей, атрибутов, категорий, и тому подобное. 


В случаи отказа добавлять новый товар или обновлять товар строка будет начинаться с !->
При таком подходе вы всегда сможете нажать в браузере ctrl+f и найти все негативные логи. То есть неудачи в работе с товаром.

Далее идут логи начинающиеся с --> это уже локальные задачи которые решает модуль.

Как правило это логи обновления. И здесь вы можете видеть что конкретно изменял модуль в конкретном товаре. 
При обновлении я решил писать по максимуму информации в логи, что бы пользователям можно было легко определить какие действия произвел модуль, и какие данные записал. 

 

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


Я надеюсь эта система будет удобна и вам. 

  • +1 1
Надіслати
Поділитися на інших сайтах

Пред просмотр парсинга в Интернет магазин
 

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

При заходе на на страницу Пред просмотр вы будете видеть стандартные пустые поля. Вот так:
 

  Скрыть контент

show_im1.thumb.png.f486d091271238a8d2774b326ad126e6.png



Но после того как вы выберите ссылку для пред просмотра и нажмете зеленую кнопку Пред просмотр страница преобразится show_im2.thumb.png.7655eb0e7c64eb603f5ec9b9527de183.png
 

 

При условии что вы правильно настроили границы парсинга, и выбрали поля на вкладке Настройка парсинга в ИМ, а если нет то как раз здесь вы увидите результат вашей работы. 

Здесь вы можете просмотреть настройку парсинга.
1. Название товара.
2. Производитель.

3. Артикул (sku) не путать с кодом товара.

4. Количество товара
5. Цена товара. (всегда указывается в Руб.) Это не значит что у вас в магазине товар будет в рублях, это просто для наглядности. Если у вас валюта стоит грн, доллар или евро, то при парсинге цена будет указана в той валюте которая включена в магазине. 

6. Категории. Вот как вы видите так товар и загрузится к вам. Сравнение категорий идет по всей структуре, а не только по младшей категории. 

7. Главное изображение товара.
8. 9. 10 - Дополнительные изображения. Хотя доп изображения может быть неограниченное количество. Просто в этом примере только три изображения. 

11. Описание.
12. Атрибуты 

На случай если в описании вы увидели нежелательный текст, или теги html кода, можете нажать на кнопку поиск замена и сразу перейти к настройки правил очистки текста. 

Надіслати
Поділитися на інших сайтах

Читайте вникайте.
Релиз будет сегодня.

Ушел поспать. 

Надіслати
Поділитися на інших сайтах

много инфы, за раз не осилил :)

пару вопросов:

1. Парсинг атрибутов.

В АОП реализовали, а тут так и не понял есть ли - надо просто спарсить значение атрибута и присвоить к уже имеющемуся атрибуту, т.е. со страницы берём, например, "2019" заносим в прописанный атрибут вручную (или выбранный из списка атрибутов, что лучше, т.к. по ID более точно привяжется) "Год выпуска", при этом "Год выпуска" берем из базы атрибутов, а не со страницы донора. В принципе можно и вручную создать границы для каждого атрибута, как делалось для создания в таблице колонок с названиями атрибутов, но как дополнительная возможность не помешала бы.

 

2. Обновление товаров.

Реализована ли возможность обновлять и добавлять только новые товары? для такого вида парсинга, думаю, что актуально, т.к. ранее внесенные/обновленные товары зачастую после парсинга дополнительно подвергаются редактированию, и не хотелось бы, чтобы при последующем обновлении модулем информация терялась/перезаписывалась. Тут можно бы было сделать функционал ,например, "обновить только новые товары" - те, которых ранее не было в списке парсинга, и "обновить товары по дате добавления" с  выбором временного промежутка, можно и "обновить новые товары по ID" - указав ID товаров от и до.

 

3. Идентификатор товара.

К списку "а) Код товара (он же model), б) Артикул (поле sku), в) Название" можно добавить еще связанные sku из АОП, или выбор идентификатора пользователем. Объясню на примере. Есть прайс поставщика в котором не на всех товарах имеется артикул производителя и EAN или товар имеет одинаковый артикул, т.е. как бы привязаться в этом прайсе общим стандартом нельзя - часть товаров пропадет при парсинге или заменится следующим, но имеется складской номер поставщика на всех товарах - по нему АОП и парсит как по основному sku, а колонки EAN и/или Артикул из прайса АОП берет как связанные sku. В таком случае АОП может найти товар в других прайсах, например, взяв связанный EAN. Понятно, что в таком случае идентифицировать товар просто по sku со сторонних источников не получится - необходимо дополнить идентификатор как минимум поиском по связанным sku, либо по какому-то другому идентификатору - можно сделать поле, в котором указать этот идентификатор, например, {atr[Код товара производителя]} - привязываться к атрибуту "Код товара производителя" (часто дополнительные идентификаторы вносят в атрибуты). Еще не надо забывать про стандартные поля движка как EAN, ISBN и другие - их бы тоже не мешало внести как идентификаторы.

 

Змінено користувачем stas2010
Надіслати
Поділитися на інших сайтах


5 часов назад, stas2010 сказал:

1. Парсинг атрибутов.

В АОП реализовали, а тут так и не понял есть ли - надо просто спарсить значение атрибута и присвоить к уже имеющемуся атрибуту, т.е. со страницы берём, например, "2019" заносим в прописанный атрибут вручную (или выбранный из списка атрибутов, что лучше, т.к. по ID более точно привяжется) "Год выпуска", при этом "Год выпуска" берем из базы атрибутов, а не со страницы донора. В принципе можно и вручную создать границы для каждого атрибута, как делалось для создания в таблице колонок с названиями атрибутов, но как дополнительная возможность не помешала бы.

Сейчас атрибуты парсятся с сайта донора. И заносятся у товара.
Схема где вы парсите и выбираете атрибут в магазине отсутствует. 
НО если вам нужен конкретный атрибуты вы его можете спарсить через границы и через поиск замену заменить его имя на нужное вам. 

Все атрибуты которые совпадают по имени с теми что в магазине, берут id атрибута с магазина и присваиваются товару. 
 

Цитата

2. Обновление товаров.

Реализована ли возможность обновлять и добавлять только новые товары? для такого вида парсинга, думаю, что актуально, т.к. ранее внесенные/обновленные товары зачастую после парсинга дополнительно подвергаются редактированию, и не хотелось бы, чтобы при последующем обновлении модулем информация терялась/перезаписывалась. Тут можно бы было сделать функционал ,например, "обновить только новые товары" - те, которых ранее не было в списке парсинга, и "обновить товары по дате добавления" с  выбором временного промежутка, можно и "обновить новые товары по ID" - указав ID товаров от и до.

Вообще никогда такое ненужно было. Обновляет товар у которого совпал идентификатор с идентификатором в магазине. 
Но если будет сильно нужно тогда подумаю. 

 

 

Цитата

3. Идентификатор товара.

К списку "а) Код товара (он же model), б) Артикул (поле sku), в) Название" можно добавить еще связанные sku из АОП, или выбор идентификатора пользователем.Объясню на примере. Есть прайс поставщика в котором не на всех товарах имеется артикул производителя и EAN или товар имеет одинаковый артикул, т.е. как бы привязаться в этом прайсе общим стандартом нельзя - часть товаров пропадет при парсинге или заменится следующим, но имеется складской номер поставщика на всех товарах - по нему АОП и парсит как по основному sku, а колонки EAN и/или Артикул из прайса АОП берет как связанные sku. В таком случае АОП может найти товар в других прайсах, например, взяв связанный EAN. Понятно, что в таком случае идентифицировать товар просто по sku со сторонних источников не получится - необходимо дополнить идентификатор как минимум поиском по связанным sku, либо по какому-то другому идентификатору - можно сделать поле, в котором указать этот идентификатор, например, {atr[Код товара производителя]} - привязываться к атрибуту "Код товара производителя" (часто дополнительные идентификаторы вносят в атрибуты). Еще не надо забывать про стандартные поля движка как EAN, ISBN и другие - их бы тоже не мешало внести как идентификаторы.

Буду вносить новые типы идентификатора по мере необходимости.  Пока внес то что постоянно спрашивали в моей практике парсинга.

По поводу связанных ску. Это фишка АОП и как я понимаю хранится эта информация здесь.
http://joxi.ru/KAgob5vfE54z1A
Мой модуль работает с стандартными таблицами опенкарт. Не хочу привязывать его к работе с нестандартными таблицами. 
Во время эксплуатации буду видеть потребности пользователей и корректировать модуль. 

Надіслати
Поділитися на інших сайтах

@stas2010 а вот по поводу много информации. 
Вы главное первый пост прочтите, именно тот где парсинг в им.
И в основном нужно понять только вот эту часть. остальное должно быть уже понятно,

 

Спойлер

Настройки полей данных: Артикул, Название, Цена и т.д.

Это самая интересная часть настройки. Ниже я разберу настройку всех полей. Но перед тем как перейти к разбору настроек вам нужно понять пару важных моментов. 
С них я и начну. 

Я поделил данные в товаре на два типа.
1. Простые
2. Сложные.

К простым относятся такие данные как

Код товара [model]

Артикул [sku]

Название 

Цена
Количество
Производитель

Описание 

К сложным данным я отнес:
Категории
Фото
Атрибуты

 

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

У категории сложные все иначе. Поскольку к примеру изображения может быть 1 а может быть и 100, также категория может быть одна, а может быть целая структура.
Атрибуты так вообще там одна часть данных должна говорить что будет именем атрибута, а что его значением. 
 

Для этого я разработал вот эту строку, она универсальная. 
pr_im2.thumb.png.1d9b911bf53d1db72c50f569048c4437.png

К примеру вы можете записать в это поле слово Привет мир! И все товары которые будут парсится получат название Привет мир!
Вот пример.

  Скрыть контент
  Скрыть контент

pr_im3.thumb.png.7d394d80e39f3b664c1f32d708871663.png
 

Результат 
pr_im4.thumb.png.2b77dde4813333767dea7abfa397dbe6.png

 


Но туда можно подсовывать данные парсинга, которые вы настраиваете на второй вкладке.
Для этого вам нужно написать {gran_id}

Где id это номер параметра парсинга что вы настраивали на вкладке Настройка парсинга. 
Я понимаю что это кажется чем то сверх сложным но для удобства я создал вам выпадающий список где вы можете увить Название границы парсинга, их id и когда вы выбираете границу она автоматически заполняет полу. То есть вручную вам ничего прописывать не нужно!

 

pr_im5.thumb.png.4abf5c3c299150071029005aa7f52acc.png

 

Но если хочется, вы можете это делать вручную, я не хотел вас ограничивать :)

Как заполнить разобрали теперь к самому веселому переходим.
Можно в данном поле использовать как границы парсинга, так и текст введенный вручную. Так и вперемешку!

То есть допустимо любой вариант заполнения. 
К примеру в название указать не одну границу парсинга, а вот так.  
{gran_82} | От производителя = {gran_94} | По цене = {gran_83}

Результат будет такой. 
 

  Скрыть контент
  Скрыть контент

pr_im6.thumb.png.1fa4bbd37d69597afec8a22cfa1747c2.png

 

И это касается всех полей. Имени, артикула, или фото. Вообще всех.
Вы теперь можете парсить несколько описаний в магазине миксовать их и заполнять себе в одно описание. Я даже не представляю все варианты использования но мне кажется их просто неимоверно.

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

  Скрыть контент
  Скрыть контент

pr_im10.thumb.png.9b57e8a7d0af3f71a8e382658cd441ed.png




Так теперь переходим к сложным данным. 

Объясню на примере Изображений. 
Изображение может быть одно, а можете быть и сто. Значит ссылка на каждое фото должна быть отдельно определена. 
Для того что бы работать с сложными границами представьте что вы парсите в эксель файл. И вам нужно добиться что бы новое значение было в новой ячейки экселя. 
Для этого мы используем спец разделитель {csvnc} Для сложных данные все тоже самое. :) Вуаля, все кто пользовался модулем первой версии можете выдыхать вы уже на коне ! :grin:
Для того чтобы загрузить много фото вам нужно разделить их {csvnc} и все равно на каком этапе вы это сделаете. 
Можете через повторяющие границы парсинга, или через поиск замену какой то кусок кода заменить на {csvnc} 

  Скрыть контент
  Скрыть контент

Настройки повторяющихся границ парсинга

pr_im7.thumb.png.b982cecaa4b172478b21be3608f093d8.png


Поиск замена
pr_im8.thumb.png.f0ad437e3682078f2490c5cbbc6cddea.png


Или даже напрямую в поле прописать 
{gran_id}{csvnc}{gran_id} - И это тоже будет работать. 


Одним словом не важно как вы это добьетесь. Решайте сами в какой ситуации как вам поступать удобнее. Гибкость наше все :)

Так же обратите внимание что в настройках повторяющихся границ не обязательно указывать {csvnc} Все разделители по умолчанию в парсинге в им, считаются как {csvnc} сделано для того что бы одни и теже границы можно было парсить как в файл, с своим разделителем, так и в магазин. Все для вас.

Я думаю главный сообщение я смог до вас донести.

 

Надіслати
Поділитися на інших сайтах

Уважаемый автор, не знаю как во второй версии, но в первой неть) вроде поддержки кук , можно добавить пару строк CURLOPT_COOKIEJAR,CURLOPT_COOKIEFILE в CURL. чтобы не вручную добавлять при обновление модуля?

Змінено користувачем pomansur
  • +1 1
Надіслати
Поділитися на інших сайтах


30 минут назад, pomansur сказал:

Уважаемый автор, не знаю как во второй версии, но в первой неть) вроде поддержки кук , можно добавить пару строк CURLOPT_COOKIEJAR,CURLOPT_COOKIEFILE в CURL. чтобы не вручную добавлять при обновление модуля?

Нет в версии 2 кук тоже не будет :( 
Я еше не до конца решил как все будет работать, и пока еше учусь, а изучать мне еше очень много. 

Но куки это 100% будет реализовано. Это нужно. 

Буду признателен если вы мне напишите как вам было бы удобно реализовать работу с куками. 

Надіслати
Поділитися на інших сайтах

Только что, Rassol2 сказал:

Нет в версии 2 кук тоже не будет :( 
Я еше не до конца решил как все будет работать, и пока еше учусь, а изучать мне еше очень много. 

Но куки это 100% будет реализовано. Это нужно. 

Буду признателен если вы мне напишите как вам было бы удобно реализовать работу с куками. 

Ну например как в парсере яндекс маркета от Игуана, помоему удобно)) да все равно вроде как, или в папку кидать или через загрузчик загружать загружаемое))

  • +1 1
Надіслати
Поділитися на інших сайтах


4 минуты назад, pomansur сказал:

Ну например как в парсере яндекс маркета от Игуана, помоему удобно)) да все равно вроде как, или в папку кидать или через загрузчик загружать загружаемое))

Ок попробую придумать юсер френдли работу с куками :) 

Надіслати
Поділитися на інших сайтах

5 часов назад, Rassol2 сказал:

а вот по поводу много информации. 

это был не укор., просто надо сесть и внимательно изучить описание. а то, что много информации - даже к лучшему :) многие вообще никакой не предоставляют - сиди и думай, что там автор имел в виду....

 

Надіслати
Поділитися на інших сайтах


Только что, stas2010 сказал:

это был не укор., просто надо сесть и внимательно изучить описание. а то, что много информации - даже к лучшему :) многие вообще никакой не предоставляют - сиди и думай, что там автор имел в виду....

 

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

Надіслати
Поділитися на інших сайтах

Мальдивы

В 02.04.2019 в 20:21, pomansur сказал:

Бери сразу 10, потом загонишь кому нить))) Чувствую, Канары по тебе плачут.

 

Буду за Вами.

Канары помоему мимо нас прошли))) Но 300 рублей, есть 300 рублей. Если впереди никого нет, пошел покупать)

Надіслати
Поділитися на інших сайтах


Обновление версия 2.0

За последние дни много чего уже написал. Поэтому будет короткое сообщение.

Отмечу два главных пункта. 
1. Модуль пока в бета тестировании и использовать на боевых проектах не рекомендую, все на свой страх и риск.
2. Версия 2 несовместима с первой 1.3 и при установки второй версии нужно удалить старые базы даннх. Дальше я буду делать совместимость. Но тут так повелось что сильно разные цели были у первой и второй версии.

Инструкция для обновления с версии 1.3 на версию 2.0

1. Загрузить содержимое директории uploads  в корень сайта.

2. Если вы обновляетесь с версии 1.3 на версию 2  вам необходимо загрузить файл delet_v1.php с директории updete_from_1_to_2 и выполнить. Если нет то пропускаем этот пункт. и переходим к пункту три! (Обратите внимание что версия 2.0 несовместима с 1.3 и после выполнения этого действия, все настройки сделанные в модуле SimplePars будут удалены.)
3. Выполнить ваш_сайт/inst.php

4. Удалить с корня сайта файл inst.php (Это важно!)

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

Надіслати
Поділитися на інших сайтах

12 минут назад, pomansur сказал:

Мальдивы

Канары помоему мимо нас прошли))) Но 300 рублей, есть 300 рублей. Если впереди никого нет, пошел покупать)

Я писал в данной ветке что модуль будет платным. 

 

К примеру здесь:
 

В 15.03.2019 в 16:17, Rassol2 сказал:
Цитата

Еще такой вопрос, будет ли он платным?


По поводу платной версии. Когда выйдет версия 2 модуль будет платным. Но кто поддерживал модуль здесь и подписан на данный модуль не будут обижены. И к старту продаж я выставлю модуль по самой низкой цене что можно поставить на данном ресурсе, и кто подписан сможет зайти и приобрести его по 300р если не ошибаюсь. 
Приобретение даст возможность дальше обновляться. 


Главный фактор перевод модуля на платную основу это освободить свое время от выполнения заказов, что бы я мог больше времени уделять разработке. 
Это поможет сделать модуль лучше.
Второй фактор, есть много платных модулей которые делают аналогичную работу, и заниматься демпингом я не буду.

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

Что бы все стало прозрачно, ориентировочно цена модуля будет 1500р когда я все доделаю. 

Прошу простить, понять, и отпустить :cry:

Надіслати
Поділитися на інших сайтах

После обновления сайта с инструкцией, на сайте будет лежать ссылка на скачивание версии SimplePars v1.3.2-3 Бесплатно. 
Кому достаточно только сбора ссылок в прайс, сможете пользоваться дальше. 

Надіслати
Поділитися на інших сайтах

Добрый день, а подскажите куда копнуть, при выборе ссылки на второй вкладке, модуль вываливается в ошибку.
Покажите скриншо, или скиньте строку с ошибкой.

Отправлено с моего Pixel через Tapatalk

Надіслати
Поділитися на інших сайтах

Хотел бы узнать мнение тех кто уже коснулся к второй версии модуля.
Сейчас очень интересует как вам работа с вот этим полем ? 
9f08b2d0cc.thumb.png.e0175e344d42730afbfadd1dc7f9f77f.png

 

Поскольку я собираюсь улучать сбор ссылок и формирование прайс листов. И подобное решение здесь - http://joxi.ru/Q2KYWgJuLOO0Lr 

Cможет немного развязать руки в плане формирования прайс листов. 

Так же забыл написать что в версии 2 тег {csvnl} - Уже работает. И вы можете реализовывать вот такие схемы.
https://opencartforum.com/topic/123017-podderzhka-simplepars-universalnyy-parser-dlya-im/?do=findComment&comment=1254374

PS. Не путайте {csvnc} c  {csvnl
{csvnc} - переход на следующий ячейку справа. 

{csvnl} - переход на следующий строку. (в основном нужно при парсинге ссылок.)
 

 

Надіслати
Поділитися на інших сайтах

А подскажите, как сделать такой вот финт при парсинге картинок, есть ссылка вида, https://сайт/ %id% /%имя файла%.jpg

 

id я получаю

и имя файла я получаю

 

проблема в том, что на странице одного товара меняется только  id дополнительных фото, имя файла одинаково

 

путем замены и подстановки я получаю все ссылки нужно формата, но только до https://сайт/ %id% /  как мне подставить в конец  имя файла ?

?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.