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

Recommended Posts

9 часов назад, xandr62 сказал:

Добрый вечер. Подскажите как с помощью поиск/замена убрать символ * и все после него в строке 2.8*2.8. Цифры могут отличаться

можно через регулярки
 

{reg[#\*(.*)#]}|
Спойлер

nCetVpn.png

 

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

2 минуты назад, xandr62 сказал:

 

А есть какая-нибудь инструкция по регуляркам?

конечно. Даже книга на 600страниц :)  И это не шутка :)
В самом низу страницы есть ссылка что бы потренироватся. Так же маленькое руководство на скриншоте. И так же вы можете скачать его в виде пдф.

https://simplepars.top/index.php?page=note&note_id=9
 

А вообще можете не стеснятся и просто в гугл регулярные выражения, и найдете тонный готовых решений, и инструкций.
К примеру первое что попало - https://ru.wikibooks.org/wiki/Регулярные_выражения

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

А еще вопрос) У меня парсинг этого значения (к примеру 2.8) записывается в CSV как дата. Воспринимает его как 02.08.2019. 

Как это можно победить? Ставить запятую не вариант - это разделители в атрибутах других товаров

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

можно через регулярки
 


{reg[#\*(.*)#]}|
  Показать контент

nCetVpn.png

 

 

2019-09-10_16-25-20.png

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


29 минут назад, xandr62 сказал:

А еще вопрос) У меня парсинг этого значения (к примеру 2.8) записывается в CSV как дата. Воспринимает его как 02.08.2019. 

Как это можно победить? Ставить запятую не вариант - это разделители в атрибутах других товаров 

 

 

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

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

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

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

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

 

Это я понимаю) Думал, что можно как-то указать что это число, а не дата с помощью поиск/замена. 

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


10 минут назад, xandr62 сказал:

 

Это я понимаю) Думал, что можно как-то указать что это число, а не дата с помощью поиск/замена. 

в том то и дело что сам формат csv не подразумевает типы данных.
CSV это по сути обычный текст где договорились что определенный символ делить строку на столбики. А перенос строки говорит о переходе в новую строку. И за счет этого формируется таблица.

Можно обмануть офис добавив в начало приставку rass- а после того как получите новый файл перед тем как куда то его отправлять просто через поиск замену в экселе вырезать все rass-

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

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

В 10.09.2019 в 19:20, Rassol2 сказал:

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

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

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


Хочу поделиться, может быть кому полезно будет.

У меня на сайте более 1600 товаров, обновлялось около 12 часов. так как идет в 1 поток.

Я уменьшил это время до 2,5 часов.

Создал 4 Проекта, Поделил 1600 ссылок на 4 части. и вставил их в во все 4 проекта по частям.

Открыл каждый проект разными браузерами и запустил каждый, получилось 4 потока. :-o

Еще бы была бы функция ставить парсинг на рефреш, было бы супер !

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


Добрый день, может кто сталкивался, как решить проблему пересекающихся имен атрибутов в карточке товара при парсинге в им? В карточке товара атрибуты отображаются не в той группе атрибутов. Как вариант, удалить в коде отображение названия группы атрибутов в карточке товара?

 

 

 

 

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


3 часа назад, Gerryley сказал:

Хочу поделиться, может быть кому полезно будет.

У меня на сайте более 1600 товаров, обновлялось около 12 часов. так как идет в 1 поток.

Я уменьшил это время до 2,5 часов.

Создал 4 Проекта, Поделил 1600 ссылок на 4 части. и вставил их в во все 4 проекта по частям.

Открыл каждый проект разными браузерами и запустил каждый, получилось 4 потока. :-o

Еще бы была бы функция ставить парсинг на рефреш, было бы супер !

эта схема известна ))

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

Но у меня другой вопрос 1600ссылок обновлялось 12 часов ? сколько времени у вас уходит на 1 ссылку ? Это катастрофически медленно. Если у вас конечно не стоит пауза парсинга.

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

2 часа назад, stal13 сказал:

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

а в чем проблема то ?
Модуль не создает дубли атрибутов. Или я чего то не понял ?
 

Цитата

В карточке товара атрибуты отображаются не в той группе атрибутов. Как вариант, удалить в коде отображение названия группы атрибутов в карточке товара?

Что бы выбрать в какой группе создавать новые атрибуты вы можете выбрать эту настройку.
ARc9mXg.png

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

49 минут назад, Rassol2 сказал:

эта схема известна ))

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

Но у меня другой вопрос 1600ссылок обновлялось 12 часов ? сколько времени у вас уходит на 1 ссылку ? Это катастрофически медленно. Если у вас конечно не стоит пауза парсинга.

Парсил 17000 ссылок, около 2 дней) пауза стояла 2-5 секунд, приблизительное время показывалось около 18 часов. По факту вышло так, что рандомно через 100-500 товаров, парсинг замирал, приходилось вручную нажимать стоп и кнопку запуска. В чем проблема была до конца не понимаю, но полагаю как то связано с нагрузкой на базу.

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


52 минуты назад, Inside033 сказал:

Парсил 17000 ссылок, около 2 дней) пауза стояла 2-5 секунд, приблизительное время показывалось около 18 часов. По факту вышло так, что рандомно через 100-500 товаров, парсинг замирал, приходилось вручную нажимать стоп и кнопку запуска. В чем проблема была до конца не понимаю, но полагаю как то связано с нагрузкой на базу.

Здесь есть несолько методов определения.
1. нажать f12 открываете консоль. И если после остановки последняя строка выглядит примерно так

Спойлер

QueBHeI.png


Значит это ошибка модуля. И нужно написать мне что бы я все проверил и поправил.

2. Смотреть логи модуля, действие которое последнее модуль записал в лог.

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

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

59 минут назад, Inside033 сказал:

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

ну это нормально.
Если пауза стоит рандомная, не меньше двух секунт, и не больше пяти. Возьмем среднее 3,5сек
17000*3.5/60/60 получим 16.5часов.
По этому 18 часов это нормально ничего удивительного тут нет. ;-)

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

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

эта схема известна ))

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

Но у меня другой вопрос 1600ссылок обновлялось 12 часов ? сколько времени у вас уходит на 1 ссылку ? Это катастрофически медленно. Если у вас конечно не стоит пауза парсинга.

пауз никаких не ставил.

а не будет такого что одновременно 4 браузера будут хватать 1 и туже ссылку ? 

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


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

пауз никаких не ставил.

а не будет такого что одновременно 4 браузера будут хватать 1 и туже ссылку ? 

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

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

Спойлер

teviVjz.png

Модулю требуется меньше 1 секунды.

Вероятность мала. Но если произойдет все же, тогда в игру вступает эта настройка
 

Спойлер

6yoSq0o.png

Если стоит добавить, то после того как модуль скачает страницу он увидит что товар с таким идентификатором уже существует, и проигнорирует его.
А если стоит обновлять. То тут вообще проблемы не вижу :)

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

11 минут назад, Rassol2 сказал:

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

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

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

teviVjz.png

Модулю требуется меньше 1 секунды.

Вероятность мала. Но если произойдет все же, тогда в игру вступает эта настройка
 

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

6yoSq0o.png

Если стоит добавить, то после того как модуль скачает страницу он увидит что товар с таким идентификатором уже существует, и проигнорирует его.
А если стоит обновлять. То тут вообще проблемы не вижу :)

я пробовал обший список ссылок разными браузерами.

Все таки мне больше понравился вариант в 4 потока с поделенными ссылками. :-)

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


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

я пробовал обший список ссылок разными браузерами.

Все таки мне больше понравился вариант в 4 потока с поделенными ссылками. 

Как вам будет удобно :)

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

Обновление 2.8_beta

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

Прасинг опций

Ссылка на заметку на моем сайте - https://simplepars.top/index.php?page=note&note_id=12

 

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

 

Одно значение - Просто строка, или слово. Обычный текст.
Много значений - Текст разделенный {csvnc} , или же повторяющаяся граница парсинга.

Собственно интерфейс.

dtk06tV.png

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

  1. Действие - тут два варианта. Добавляем, обновляем, создаем опции или игнорируем опции. По умолчанию опции отключены.
  2. Обязательная опция - этот переключатель отвечает за то что бы сделать опцию обязательной при покупке товара, или пользователь может купить товар не выбирая опцию.
  3. Имя опции - Сюда вы можете указать границу парсинга в которой вы парсите имя опции. Или же вы можете выбрать опцию из уже существующих у вас в магазине. Выбор одной из существующих осуществляется в выпадающем списку под пунктом 7
    Так же нужно понимать что имя опции это обычная граница парсинга.
  4. Значение опции - Значения опции, разделенные символом {csvnc} или повторяющаяся граница парсинга.
  5. Цена опции - Цена каждого значения опции, разделенные символом {csvnc} или повторяющаяся граница парсинга.
  6. Колво опций - Количество каждого значения опции, разделенные символом {csvnc} или повторяющаяся граница парсинга. (по умолчанию считается 10шт)
  7. Выбор опции - если вы не можете спарсить имя опции с сайта донора, вы можете сами выбрать опция из списка созданных у вас в магазине. И все спарсенные данные будут записаны в эту опцию и эта опция будет добавлена вам в товар.
    Так же нужно понимать что выбранная опция из списка имеет выше приоритет над полем 3 И если вы выбрали из списка модулю все равно что попадет в границу парсинга. И поле 3 можно не указывать.
  8. Здесь вы можете выбрать по стандарту Opencart спарсенная цена опции будет приплюсовать к основной, или минусовый.
  9. Добавить новые поля для второй и последующих опций, в товаре

Логика работы.

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

Каждая опция имеет множество значений.
Каждое значение имеет свою цену
Каждое значение имеет свое количество.

Структурно это выглядит так.

Прасинг опций в интернет магазин

В поле Значение опции должна попадать строка такого типа.
Значение1{csvnc}Значение2{csvnc}Значение3

В поле Цена опции должна попадать строка такого же типа как и у значения, где одна цена отделена {csvnc} от другой.
150р{csvnc}200р{csvnc}250р
Но так же нужно понимать что первая цена будет присвоена первому значениею опции, вторая второму, третья третьему и тд.
То есть порядок значений опций. И порядок цен, и кол-ва должен быть идентичен.

 

В поле Колво опций должна попадать строка как и у цены, через разделитель {csvnc}
0шт{csvnc}10шт{csvnc}3шт

 

Внимание!!! Запись через разделитель {csvnc} может быть заменена просто на повторяющуюся границу парсинга. Как показано на первом скриншоте.

 

Если вы указали верно настройки то на вкладке пред просмотра вы сможете увидеть как модуль запишет опции.
Для демонстрации я заполнил сразу 4 опции, и вот как это будет видно в режиме пред просмотра парсинга в ИМ EyWHG9S.png

Логи

При работе модуль с опциями я уделил отдельное внимание логированию. Модуль отдает максимально полную информацию по работе модуля с логами. 75wxs9X.png

Для создания опции обязательно должны быть такие данные.

  1. Имя опции или же выбрана опция из выпадающего списка.
  2. Значение опции.
    Без этих двух пунктов модуль не будет добавлять опции в товар.
    Остальные данные не обязательны.

 

Страница пред просмотра.

На странице пред просмотра парсинга в ИМ кроме опций добавлен еше пред просмотр настроек SEO Шаблонов.
 

Спойлер

0ELutAA.png


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

Спойлер

fGkc7eI.png



Для обновления обязательно выполнить mysite.ru/inst.php
 

Теперь я могу переходить к разработке прокси и всяких фишек для парсинга с авторизацией. :-o
Конечно же все замечания и доработки по опциям будут вносится.


Жду ваши лайки, подписки, репосты :-D А если серьезно то буду рад услышать идеи, конструктивную критику.
 

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

21 минуту назад, Inside033 сказал:

Шикарно!! Все мы этого очень ждали!! Потестируем))

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

 

 

20 минут назад, hippvik сказал:

:-oСупер!!!!!!!

:-o

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

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

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

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

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

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

Вхід

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

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

Important Information

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