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

Recommended Posts

1 час назад, partshez сказал:

В самом конце добавить правило {reg[#^\s+|\s+$#]}|   Удалит пробелы в начале и конце строки. Если ненужные пробелы останутся, убрать их нужно другими дополнительными правилами. 

Благодарю но в таком правиле нет необходимости оно не учитывает перенос на новую строку (проверял) все решаю {reg[#\s{2,}#]}| так как чаше всего в характеристиках сталкиваюсь именно с двойными пробелами и переносом на следующую строку.

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


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

Благодарю но в таком правиле нет необходимости оно не учитывает перенос на новую строку (проверял)

Да, это регулярное выражение {reg[#^\s+|\s+$#]}| именно в таком виде служит для обрезания пробельных символов (любых, в том числе и перенос строки) в начале и в конце текста. О чём и говорят якоря ^ и $. Для усиления "эффекта" необходимо включить "многострочный режим"

{reg[#^\s+|\s+$#m]}|

тогда убираются и все лишние переносы строк в тексте (разумеется кроме тех, которые собственно и разделяют текст на строки).

Если текст заполнен "неряшливо", а это сплошь и рядом такое, то после <td>, например, или перед </td> (или после и перед <div> и </div> соответственно) вполне могут оказаться лишние пробелы...

Поэтому лучше использовать связку из двух регулярок

{reg[#\s{2,}#]}| 

{reg[#^\s+|\s+$#m]}|

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

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

 

Ну чтобы добить пробельную тему...

Иногда, очень редко, приходится сохранять текст именно в первоначальном "построчном" виде, тогда

{reg[#\s{2,}#]}| 

необходимо разделить на вертикальную и горизонтальную составляющие:

{reg[#\v{2,}#]}|{br}
{reg[#\h{2,}#]}| 

текст сохранится в "стихотворной" форме.

 

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


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

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

Здравствуйте.
Все зависит от того как вы формируете категории, если через повторяющиеся границы парсинга это одно. Через обычные границы парсинга это другое.

Главная задача схватить первую букву в слове категорий и заменит ее на {upper}

Это действие заменит регистр в нужной вам букве.

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

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

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

Если хотите, то можете сделать так:

{reg[#^\s*(.)(.+)$#u]}|$1~$2
~{.*}|{lower}
~|

Или вот так:

{.*}|{lower}
{reg[#^\s*?а#]}|А
{reg[#^\s*?б#]}|Б
{reg[#^\s*?в#]}|В

...

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


Здравствуйте. Есть два вопроса:

1. Как отфильтровать парсер, чтобы товары, которые сняты с производства (прям так и написано на страничке товара донора) не парсило?

2. Если у меня и у донора два языка. Как мне парсеру сообщить это, чтобы он не создавал новый товар, а добавлял информацию в другую локализацию этого ж товара? 

Спасибо

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


24 минуты назад, romka7070 сказал:

Здравствуйте. Есть два вопроса:

1. Как отфильтровать парсер, чтобы товары, которые сняты с производства (прям так и написано на страничке товара донора) не парсило?

2. Если у меня и у донора два языка. Как мне парсеру сообщить это, чтобы он не создавал новый товар, а добавлял информацию в другую локализацию этого ж товара? 

Спасибо

Ответ на Вопрос №2

https://simplepars.top/index.php?page=note&n=39

 

Ответ на вопрос №1

https://simplepars.top/index.php?page=note&n=41

 

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

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


12 година назад, Axelenz сказав:

Ответ на Вопрос №2

https://simplepars.top/index.php?page=note&n=39

 

Ответ на вопрос №1

https://simplepars.top/index.php?page=note&n=41

 

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

Спасибо большое. Плюсик вам поставил)

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


В 24.11.2021 в 23:04, Rassol2 сказал:

Сам скрипт будет выглядеть так.
 


<?php

$script_data['form']['price'] = base64_decode($script_data['form']['price']);

?>

Вот и весь скрипт в вашем случаи, добавляете его перед записью в ИМ
В границу парсинга помешаете исключительно код base64 и все.
Удачи ;-)

Хотелось бы вернуться к этому вопросу. Никак не могу добится выполнения функции. 
При предпросмотре (в случае выполения скрипта "после парсиинга в ИМ" должен выводится результат обраобтки скриптом?

scr4.jpg

scr2.jpg

skr1.jpg

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


Вопрос к Rassol2. Не могу понять, почему нельзя реализовать двоязычность? Почему нельзя спарсить все данные и вручную выставить связь между данными

(/цвет-колір, /красный-червоний и тд.) ? 

13 години назад, Rassol2 сказав:

 

 

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


1 час назад, romka7070 сказал:

Вопрос к Rassol2. Не могу понять, почему нельзя реализовать двоязычность? Почему нельзя спарсить все данные и вручную выставить связь между данными

(/цвет-колір, /красный-червоний и тд.) ? 

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

Цитата

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

Допустим у нас есть атрибут Цвет (рус) и Колiр (укр)
Сперва мы парсим сайт на русском языке, а затем переключаемся на парсинг на украинском языке.
В первом случаи модуль создаст вам атрибут Цвет, а во втором случаи при обновлении модуль получить слово Колiр
И как модулю понять что это не новый атрибут, а тот же самый только на другом языке? Ведь Цвет и Колiр это совершенно разные слова не имеющие ничего общего. Это мы понимаем что это одно и тоже, но не компьютер.

 

https://simplepars.top/index.php?page=note&n=39

 

"Это мы понимаем что это одно и тоже, но не компьютер."

Он, как бы намекает нам, что компьютер вещь ещё довольно тупая и не обладает интеллектом, чтобы разгребать такие элементарные вещи... 

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


Я бы вообще не смотрел по поводу атрибутов в сторону SimplePars. Это модуль для парсинга и он свою работу выполняет отлично. А сведение атрибутов не имеет к парсингу никакого отношения...

Если уже так нужно, то я бы рассмотрел вариант с АОП. Там есть инструмент для работы с атрибутами. Выгрузить/заменить/загрузить обратно...

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


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

Хотелось бы вернуться к этому вопросу. Никак не могу добится выполнения функции. 
При предпросмотре (в случае выполения скрипта "после парсиинга в ИМ" должен выводится результат обраобтки скриптом?

scr4.jpg

scr2.jpg

skr1.jpg

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

А завершена работа скрипта или остановлена  - не указано. 

 

Пример:
2021-11-30 15:32:02| Парсинг : УСПЕШНЫЙ ЗАПРОС  | Код ответа [200] Ссылка | http://autoboss.ua/private/catalog/detail/70013/
2021-11-30 15:32:02| -> [SCRIPT] Старт выполнения скрипта [/var/www/www-root/data/www/dekoravto.com/admin/simplepars/scripts/dekod_for_csv.php]


Подскажите пожалуйста что я делаю не так.

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


Тут обнаружил, что при парсинге xml, если у товара есть опции, общее кол-во товара модуль берет не из суммы всех опций товара, а по значению последней опции. Также если есть несколько строчек с одинаковым товаром или опцией то модуль берет последнее значение кол-ва. На пример есть товары:

Варежки (арт. вр111) 8шт.

Варежки (арт. вр111) 99шт.

 

модуль запишет кол-во только 99шт. или

 

Ботинки (арт. бт111) 40 размер 3шт

Ботинки (арт. бт111) 42 размер 0шт

 

модуль запишет в общее кол-во 0 шт

 

кто как решает эту проблему?

 

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

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

Ботинки (арт. бт111) 40 размер 3шт

Ботинки (арт. бт111) 42 размер 0шт

Здесь модуль запишит в опцию два значения.
1) 40 размер 3шт

2) 42 размер 0шт

Это разные значения опции и они имеют разное кол-во.

 

Цитата

Варежки (арт. вр111) 8шт.

Варежки (арт. вр111) 99шт.

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

 

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

модуль запишет в общее кол-во 0 шт

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

Значение которое вы указываете тут

Спойлер

HFFu7cv.png

 

Записывается в товаре вот сюда

Спойлер

xzyyqlP.png

 

То есть непосредственно в количество конкретного значения опции но ни как ни в общае.

А если у вас как то меняется общае значение то это следствие чего то другого.

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

8 часов назад, Denkof сказал:

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

А завершена работа скрипта или остановлена  - не указано. 

 

Пример:
2021-11-30 15:32:02| Парсинг : УСПЕШНЫЙ ЗАПРОС  | Код ответа [200] Ссылка | http://autoboss.ua/private/catalog/detail/70013/
2021-11-30 15:32:02| -> [SCRIPT] Старт выполнения скрипта [/var/www/www-root/data/www/dekoravto.com/admin/simplepars/scripts/dekod_for_csv.php]


Подскажите пожалуйста что я делаю не так.

комон :(

1) почему при парсинге в csv значение должно быть раскодировано ? Вы же четко выбрали выполнять скрипт После парсинга в ИМ

Причем тут csv не понятно, пожалуйста будьте на приделе внимательны, потому что пункт два!

 

2) Почему значение в магазине должно быть раскодировано если выполнения скрипта назначено на выполнения ПОСЛЕ парсинга в ИМ!

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

Спойлер

5wbJ9eT.png

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

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

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

1 час назад, Rassol2 сказал:

комон :(

1) почему при парсинге в csv значение должно быть раскодировано ? Вы же четко выбрали выполнять скрипт После парсинга в ИМ

Причем тут csv не понятно, пожалуйста будьте на приделе внимательны, потому что пункт два!

 

2) Почему значение в магазине должно быть раскодировано если выполнения скрипта назначено на выполнения ПОСЛЕ парсинга в ИМ!

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

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

5wbJ9eT.png

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

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

Д

 

1 час назад, Rassol2 сказал:

комон :(

1) почему при парсинге в csv значение должно быть раскодировано ? Вы же четко выбрали выполнять скрипт После парсинга в ИМ

Причем тут csv не понятно, пожалуйста будьте на приделе внимательны, потому что пункт два!

 

2) Почему значение в магазине должно быть раскодировано если выполнения скрипта назначено на выполнения ПОСЛЕ парсинга в ИМ!

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

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

5wbJ9eT.png

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

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

Спасибо.  Поменял  "перед" на "после" проводя тесты и прикрепил не тот скрин.

Да, на скрине действительно указано "после парсинга в ИМ" но фактически данные не декодируются и  при настройке "перед парсингом в им" Такой вывод напрашивается из-за того что не удается увидеть результат обработки. Причина, как я догадываюсь, в том, что, если данные и декодируются (например получаем "237 грн"), то пишутся эти данные в "price", а поле это может содержать только числа, если я не ошибаюсь, по этому и принимается значение "0" .
Далее, т.к. при предпросмотре не видно результата обработки скрипта, я пытаюсь спарсить данные в csv, что бы, понять какие данные мы получаем на выходе.

Привожу скрипт к виду

<?php
$script_data['script_gran'][9] = base64_decode($script_data['script_gran'][9]);
?>

по аналогии в инструкции к модулю. Выполняю парсинг в csv, и в файле csv вижу данные в base64
Жаль, я далек от програмирования, но все же хотелось бы разобраться и добиться чистой цены при парсинге как в ИМ так и в csv.
Буду признателен за любые комментарии и подсказки для чайников :)

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


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

Д

 

Спасибо.  Поменял  "перед" на "после" проводя тесты и прикрепил не тот скрин.

Да, на скрине действительно указано "после парсинга в ИМ" но фактически данные не декодируются и  при настройке "перед парсингом в им" Такой вывод напрашивается из-за того что не удается увидеть результат обработки. Причина, как я догадываюсь, в том, что, если данные и декодируются (например получаем "237 грн"), то пишутся эти данные в "price", а поле это может содержать только числа, если я не ошибаюсь, по этому и принимается значение "0" .
Далее, т.к. при предпросмотре не видно результата обработки скрипта, я пытаюсь спарсить данные в csv, что бы, понять какие данные мы получаем на выходе.

Привожу скрипт к виду

<?php
$script_data['script_gran'][9] = base64_decode(script_data['script_gran'][9]);
?>

по аналогии в инструкции к модулю. Выполняю парсинг в csv, и в файле csv вижу данные в base64
Жаль, я далек от програмирования, но все же хотелось бы разобраться и добиться чистой цены при парсинге как в ИМ так и в csv.
Буду признателен за любые комментарии и подсказки для чайников :)

Я же вам скину скрипт полностью готовый который вам нужно использовать. Почему вы его не используете? 
У вас полностью готовое решение нужно только это сделать так как я написал и всё. 
 

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

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

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

Я же вам скину скрипт полностью готовый который вам нужно использовать. Почему вы его не используете? 
У вас полностью готовое решение нужно только это сделать так как я написал и всё. 
 

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

Я и использую ваше готовое решение, но делаю это как-то коряво.
Пересоздал заново границы, правила поиска/замены. Теперь работает.
Обновляется цена. Но теперь получается что, модулем на курс не разделить и наценку не добавить раз код выполняется после правил поиска/замены?
 

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


6 минут назад, Denkof сказал:

Я и использую ваше готовое решение, но делаю это как-то коряво.
Пересоздал заново границы, правила поиска/замены. Теперь работает.
Обновляется цена. Но теперь получается что, модулем на курс не разделить и наценку не добавить раз код выполняется после правил поиска/замены?
 

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

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

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

Обновляется цена. Но теперь получается что, модулем на курс не разделить и наценку не добавить раз код выполняется после правил поиска/замены?

Вот вам немного доработанный скрипт

<?php
 $base_price = base64_decode($script_data['form']['price']);
 $script_data['form']['price'] = round($base_price * 10, 2);
?>

 

Обратите внимание на цифру 10 и 2

Спойлер

ka0tp0D.png

 

В место цифры 10 можете вставить число на которое вы хотите умножить цену после расшифровки. А цифра 2 это количество знаков после запятой.

То есть число до которого нужно округлить цену в товаре.

Вот можете их менять на то что вам нужно для наценки и округления.

 

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

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

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

Здесь модуль запишит в опцию два значения.
1) 40 размер 3шт

2) 42 размер 0шт

Это разные значения опции и они имеют разное кол-во.

 

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

 

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

Значение которое вы указываете тут

  Показать контент

HFFu7cv.png

 

Записывается в товаре вот сюда

  Показать контент

xzyyqlP.png

 

То есть непосредственно в количество конкретного значения опции но ни как ни в общае.

А если у вас как то меняется общае значение то это следствие чего то другого.

 

а если нет общего кол-ва, АОП делает подсчет всех похожих опций и их кол-ва?

те получается мне приходиться записыать в кол-во строку с кол-вом опции:

Спойлер

image.png.ebd90cc910abadf65938895ea8d56e04.png

image.thumb.png.4555c1b7600870fdd360aaa2d302baf4.png

 

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

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

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

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

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

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

Вхід

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

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

Important Information

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