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

[Поддержка] Парсер-менеджер товаров с торговых площадок


igyan

Recommended Posts

Парсер-менеджер товаров с торговых площадок


Парсер-менеджер товаров с торговых площадок


Модуль Парсер-менеджер товаров с торговых площадок

Предназначен для обновления и добавления товаров с торговых площадок Яндекс-маркет(категории электроника, бытовая техника, компьютеры и некоторые дугие), Hotline.ua, Onliner.by .

Для работы парсера необходим ionCube и версия PHP не ниже 5.3

Работает на версиях 1.3.1.3- 2.3

Модуль имеет привязку к домену, для каждого домена приобретается отдельная лицензия.

Для покупки лицензии обращаться в личку

Демо:

http://www.oc-parser.ru/opencart/oc1541/admin/index.php?route=module/parsermanager

User: demo

Password: demo

Видео как работает парсер:

http://www.oc-parser.ru/index.php?r=site/page&view=demomanager

Возможности:

  1. Добавление, обновление товаров .
  2. Автоматический поиск товара на сайте-доноре по названию товара или модели.
  3. Сохранение постоянных ссылок на товары с сайта донора, для дальнейшего использования ссылки.
  4. Гибкое использование фильтров для поиска редактируемых товаров, по отсутствию характеристик, описания, цены, изображения или целой категории товаров.
  5. Возможность выбора данных для обновления, данные указываются для каждого источника, с одного можно парсить атрибуты с другого, цену, описание и тд.
  6. Возможность дополнять или заменять данные в товарах.
  7. Использование прокси-сервера или указание целого листа с прокси-серверами. С последующей проверкой доступности сайта –донора (Яндекс.Маркет ). После проверки прокси сортируются по времени доступа.
  8. Контроль при парсинге нескольких товаров, если произошло прерывание парсинга из-за обрыва, таймаута, их можно допарсить позже.
  9. Подробный лог парсинга.

Внимание! Перед парсингом сделайте бэкап БД магазина.

Необходима библиотека CURL в PHP.

 

Установка:

  1. Копирование в корень магазина файлов из архива для 1 или 2 версии. После запуска модуля создастся две таблицы в БД, одна для хранения ссылок на товары, другая для хранения ссылок при парсинге нескольких товаров.
  2. Настройка парсера согласно скрина, пустых значений не должно быть.
  3. Обновить таблицы парсера.
  4. Для торг.маил.ру и яндекса обязательно подкинуть куки, после посещения донора.

 

Принцип работы модуля:

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

Обязательно нажать «Сохранить». После настроек модуль готов к работе. Будут показаны товары, указанные в фильтре, или все если фильтр не используется.

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

Для поиска товара необходимо нажать «Поиск» и будет произведен поиск товара по названию или модели. В появившемся списке товаров выбирается нужный, после чего ссылка на товар постоянно запомнится в парсере. Если поиск не дал результатов, можно ввести прямую ссылку на товар, скопировав ее с сайта источника. Для этого нужно нажать «+». Также есть возможность поиска товара по произвольному запросу(не по названию товара или модели). Для это нужно нажать «Ввести запрос» и ввести в поле, что необходимо найти.

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

Также возможен парсинг нескольких товаров, для этого нужно выбрать товары и нажать «Парсить все». Будут спарсены товары у которых есть ссылки.

ВАЖНО! Парсинг нескольких товаров может быстро привести к бану, в особенности Яндексом, поэтому используйте эту функцию, если имеете прокси-сервера.

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

Добавление новых товаров.

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

Модуль адаптирован под версию 2.3. Проверено на версии 2.0, 2.1, 2.2, 2.3.

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

С января 2018 продление  лицензией на год будет 1000р.

На второй и последующие скидка при покупке нового парсера

 

 


  • Добавил
  • Добавлено
    20.02.2014
  • Категория
  • Системные требования
    Ioncube PHP>5.3
  • Метод активации
    По запросу в ЛС
  • Ioncube Loader
    Требуется
  • ocStore
    3.0
    2.3
    2.2
    2.1
    1.5.5.1.2
    1.5.5.1.1
    1.5.5.1
    1.5.4.1.2
    1.5.4.1.1
    1.5.4.1
    1.5.3.1
    1.5.2.1
    1.5.1.3
  • OpenCart.Pro, ocShop
    Не проверялось
  • Обращение к серверу разработчика
    Нет

 

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

Я учту в обновлении, можно добавить поле количество. Планирую добавить сайт - источник 220-volt.ru

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

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

test.php

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

Тут появились такие идеи, если конечно их можно реализовать вообще.

Сделать префикс к названию новой позиции.

На ямаркете и других каталогах, зачастую позиции идут в таком виде "Beko CS 230020" а если пользователь добавляет по категории, то почему бы ему не ввести префикс "Холодильник" а на выходе получится "Холодильник Beko CS 230020" Это будет очень хорошо, а именно когда позиции выводятся в модулях "популярное, новое и т.д." человек сразу понимает что он видит, холодильник или морозиловку.

Я думаю что идея хорошая.

 

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

И еще, добавить индикатор статуса товара включен он щас или нет, так же как и кнопку, включить и выключить.

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

 

Персер очень классный, и желаю ему только развития.

ЗЫ. Как вспомню как я ручками 700 позиций добавлял)))))

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


Добрый день,

поставил модуль

на 1.5.6

 

установилось

входит в модуль

настройки яндекс

сохранить

 

после этого белый экран

 

выходишь из модуля - обратно - белый экран ничего не грузится :(

Что может быть?

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


Добрый день,

поставил модуль

на 1.5.6

 

установилось

входит в модуль

настройки яндекс

сохранить

 

после этого белый экран

 

выходишь из модуля - обратно - белый экран ничего не грузится :(

Что может быть?

 

Добрый день. Похоже ошибка, откройте файл admin/controller/module/parsermanager.php и вставьте после <?php строки

error_reporting(E_ALL);

ini_set('display_errors', 1);

После чего должны показываться ошибки,

Последняя версия на которой тестировалось 1.5.5.1, мое упущение, буду исправлять

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

В окне ошибок нет при октрытии

код пустой

 

в админке ошибки

2014-03-08 3:20:18 - PHP Notice:  Undefined offset: 1 in /home2/transpoi/public_html/admin/controller/module/parsermanager.php on line 1779
2014-03-08 3:22:43 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 3:23:45 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 3:24:16 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 3:26:17 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 3:35:53 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 3:36:29 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 4:24:09 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 4:24:23 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50
2014-03-08 4:24:25 - PHP Notice:  Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay<br />Error No: 1104<br />SELECT p.product_id, pd.name, p.sku, p.model, p.image, p.price FROM fem_product p  LEFT JOIN fem_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN fem_product_image pi ON (p.product_id=pi.product_id) LEFT JOIN fem_product_attribute pa ON (p.product_id = pa.product_id) WHERE pd.language_id = '2' AND pa.product_id IS NULL  AND pi.product_id IS NULL  AND p.image=''  AND p.sku =''  AND pd.description =''  GROUP BY product_id ASC LIMIT 0,50 in /home2/transpoi/public_html/system/database/mysql.php on line 50

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


Проверил на дефолтном движке oc156 на localhost`e явных ошибок нет, сохранение и парсинг работают. А вот версию oc1561 смог проверить, при установке движка сыплется в ошибки, надо искать рабочую версию.

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

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

Попробуйте увеличить значение, если хостер не заблокировал эту функцию.

Вставьте в файл admin/model/module/parser.php

 

после строки 182

public function SearchEmpty($data = array()){

 

эти строки

$sql = "SET SQL_MAX_JOIN_SIZE = 4294967295999999";

$query = $this->db->query($sql);

 

и после 268

 

public function getTotalProducts($data = array()){

тоже самое

 

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

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

Окей

как минимум открылся сам модуль по нажатию Изменить.

Спасибо за оперативную поддержку.

Расскажите, какие конкретно действия делали.

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

Расскажите, какие конкретно действия делали.

после строки 182

public function SearchEmpty($data = array()){

 

эти строки

$sql = "SET SQL_MAX_JOIN_SIZE = 4294967295999999";

$query = $this->db->query($sql);

 

и после 268

 

public function getTotalProducts($data = array()){

тоже самое

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


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

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

можно ли добавить функцию добавления веса товара?

Вы хотите добавлять при обновлении товара

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

спасибо за модуль, супер!

пара вопросов

1. если в названии товара встречается знак < и >, они при поиске заменяется на < и > и ничего не находится

если их удалить, то находит то, что нужно

как поправить?

 

2. при парсинге почти всегда вываливается в

 

Gateway Timeout The upstream server does not response. Try again later.

 

как бороться?

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


спасибо за модуль, супер!

пара вопросов

1. если в названии товара встречается знак < и >, они при поиске заменяется на < и > и ничего не находится

если их удалить, то находит то, что нужно

как поправить?

 

2. при парсинге почти всегда вываливается в

 

Gateway Timeout The upstream server does not response. Try again later.

 

как бороться?

Спасибо, на добром слове.

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

Напишите на каком сайте ищете товар и пару названий попробую что нибудь  сделать.

На счет второго сложно сказать, ошибка при парсинге нескольких товаров или одного

может не хватает ресурсов серверу, можно попробовать попросить поддержку добавить параметр memory_limit, бывает не соответствует заявленому на тарифе

могут проблемы с настройкой самого сервера

Я для этого и сделал список товаров для парсинга, в обновлении добавлю задержку при парсинге для нескольких товаров

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

по первому:

ищу на маркете

название товара 

Беспроводная мышь Microsoft Wireless Mouse 1000 for Business (черная), USB, 2,4 GHz <2CF-00003>

если нажать напротив него "Ввести запрос", то преобразовывается в

Беспроводная мышь Microsoft Wireless Mouse 1000 for Business  черная , USB, 2,4 GHz <2CF-00003>

 

по второму

может есть какой скрипт, который запустив на сервере, выдал бы ЧЕСТНЫЕ параметры сервера (а не то что говорит хостер)

 

буду ждать обновления, с задержкой при парсинге для нескольких товаров

 

и ещё, думаю это не очень сложно добавить, но было бы удобно:

можно добавить кнопку "Парсить товары имеющие ссылки"

 

и немного ещё :о)

допустим прошёлся я парсером по всем товарам в магазине

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

можно ли сделать в модуле фильтр по полю модель, чтоб при добавлении новых товаров на сайт, можно было исключить прошлые товары (со знаком в поле модель), чтоб по новой их не пробовать парсить, а оставить до лучших времен 

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


Попробую добавить в новую версию

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

чтобы узнать настройки сервера создайте файл

info.php

с содержанием

<?php

echo phpinfo();

?>

закинте на хостинг и запустите по прямой ссылке http://сайт/info.php , увидите настройки сервера

на забудте потом файл удалить

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

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

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

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

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

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

Вхід

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

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

Important Information

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