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

Recommended Posts

Здравствуйте. Подскажите, можно-ли как-то указать несколько строк в границу парсинга?

Или как спарсить цену вот с такого блока, нужна цена <!-- Price opt -->, то есть 260 и 270, это повторяющиеся границы - цена для каждого размера...

 

Заранее спасибо за помощь...

Spoiler

<tbody class="table-order-sizes__body table-order-sizes__body--active" data-color-id="0">


  <tr class="table-order-sizes__body-row">

    <!-- Size -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="size-item size-item--large">46</div>
      <input type="hidden" name="" value="30">
    </td>

    <!-- Price opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="260">
        260 ₽
      </div>
    </td>

    <!-- Price small opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="315">
        315 ₽
      </div>
    </td>

    <!-- Qty -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="counter-selector">
        <div class="counter-selector__button counter-selector__button-minus" data-counter-select-action="card_remove">
        </div>
        <input class="counter-selector__input" type="number" name=""
          data-price="315" value="0">
        <div class="counter-selector__button counter-selector__button-plus" data-counter-select-action="card_add"></div>
      </div>
    </td>

    <!-- Color replacement-->

    <td class="table-order-sizes__cell table-order-sizes__body-cell"></td>

  </tr>


  <tr class="table-order-sizes__body-row">

    <!-- Size -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="size-item size-item--large">50</div>
      <input type="hidden" name="" value="32">
    </td>

    <!-- Price opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="270">
        270 ₽
      </div>
    </td>

    <!-- Price small opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="315">
        315 ₽
      </div>
    </td>

    <!-- Qty -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="counter-selector">
        <div class="counter-selector__button counter-selector__button-minus" data-counter-select-action="card_remove">
        </div>
        <input class="counter-selector__input" type="number" name=""
          data-price="315" value="0">
        <div class="counter-selector__button counter-selector__button-plus" data-counter-select-action="card_add"></div>
      </div>
    </td>

    <!-- Color replacement-->

    <td class="table-order-sizes__cell table-order-sizes__body-cell"></td>

  </tr>


</tbody>

 

 

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


3 минуты назад, asokr сказал:

Заранее спасибо за помощь...

Под спойлер уберите.
 

Спойлер

image.png.9ee294b781582b75b70c9e217b0dc4c4.png

Спойлер

image.png.5465e3b88a39dcf4212cb036d40959b6.png

 

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


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

И еще один вопрос назрел)

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

Заранее благодарю)

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

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

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

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

Два потока которые одновременно делают одно и тоже. Затем этих потоков будет больше.

А хотя бы двумя потоками нельзя ограничить? Так то да. Задачка я понимаю что трудная.

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


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

А хотя бы двумя потоками нельзя ограничить? Так то да. Задачка я понимаю что трудная.

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

Нагрузка 2x пользы нет.

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

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

Парсить одну и туже ссылку и обновлять один и тот же товар.

Понял. Кина не будет. Спасибо.

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


1 минуту назад, Reanimaster сказал:

Понял. Кина не будет. Спасибо.

Не в этом случаи.
PHP пока не готов.

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

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

Здравствуйте. Подскажите, можно-ли как-то указать несколько строк в границу парсинга?

Или как спарсить цену вот с такого блока, нужна цена <!-- Price opt -->, то есть 260 и 270, это повторяющиеся границы - цена для каждого размера...

 

Заранее спасибо за помощь...

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


<tbody class="table-order-sizes__body table-order-sizes__body--active" data-color-id="0">


  <tr class="table-order-sizes__body-row">

    <!-- Size -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="size-item size-item--large">46</div>
      <input type="hidden" name="" value="30">
    </td>

    <!-- Price opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="260">
        260 ₽
      </div>
    </td>

    <!-- Price small opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="315">
        315 ₽
      </div>
    </td>

    <!-- Qty -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="counter-selector">
        <div class="counter-selector__button counter-selector__button-minus" data-counter-select-action="card_remove">
        </div>
        <input class="counter-selector__input" type="number" name=""
          data-price="315" value="0">
        <div class="counter-selector__button counter-selector__button-plus" data-counter-select-action="card_add"></div>
      </div>
    </td>

    <!-- Color replacement-->

    <td class="table-order-sizes__cell table-order-sizes__body-cell"></td>

  </tr>


  <tr class="table-order-sizes__body-row">

    <!-- Size -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="size-item size-item--large">50</div>
      <input type="hidden" name="" value="32">
    </td>

    <!-- Price opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="270">
        270 ₽
      </div>
    </td>

    <!-- Price small opt -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="price" data-price="315">
        315 ₽
      </div>
    </td>

    <!-- Qty -->

    <td class="table-order-sizes__cell table-order-sizes__body-cell">
      <div class="counter-selector">
        <div class="counter-selector__button counter-selector__button-minus" data-counter-select-action="card_remove">
        </div>
        <input class="counter-selector__input" type="number" name=""
          data-price="315" value="0">
        <div class="counter-selector__button counter-selector__button-plus" data-counter-select-action="card_add"></div>
      </div>
    </td>

    <!-- Color replacement-->

    <td class="table-order-sizes__cell table-order-sizes__body-cell"></td>

  </tr>


</tbody>

 

 

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

Такой алгоритм...

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


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

Два потока которые одновременно делают одно и тоже. Затем этих потоков будет больше.

Придумал решение. 
Объединение двух фидов в одном проекте.
И {|} на цену и количество) :eek:

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


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

Придумал решение. 
Объединение двух фидов в одном проекте.
И {|} на цену и количество) :eek:

Две выгрузки xml?

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


48 минут назад, partshez сказал:

Две выгрузки xml?

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

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

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

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

Придумал решение. 
Объединение двух фидов в одном проекте.
И {|} на цену и количество) :eek:

Это, конечно, интересное решение. Но результат-то не изменится по времени. Обработать в двух проектах по 100 ссылок с запуском в крон. Или в одном проекте 200 ссылок.

Ну, если Вы увеличили количество потоков в кроне до 100.. тогда вариант. Хотя, не уверен

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


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

Это, конечно, интересное решение. Но результат-то не изменится по времени. Обработать в двух проектах по 100 ссылок с запуском в крон. Или в одном проекте 200 ссылок. 

а тут вы правы.
Но может так нужно для выделения одного общего временного промежутка.
Кто знает.

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

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

Это, конечно, интересное решение. Но результат-то не изменится по времени. Обработать в двух проектах по 100 ссылок с запуском в крон. Или в одном проекте 200 ссылок.

Ну, если Вы увеличили количество потоков в кроне до 100.. тогда вариант. Хотя, не уверен

Ну во первых увеличил. Во вторых, как минимум так проще, чем кучу проектов плодить под одну и ту же примитивную задачу.

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


 

15 часов назад, partshez сказал:

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

У меня нет атрибутов. Магазин одежды, здесь нет особых атрибутов только опции - Размер одежды (42, 44, 48 ... S, M, L ...) И привязка фильтра идет от опции.

Плюс ко всему фильтр я обрабатываю под один стандарт, если Опция (Размер) "S" в фильтре он будет "42", или если размер 48-54, то в фильтре - 48, 50, 52, 54 ну и так далее. Разные производители по разному устанавливают размеры и что бы не было в фильтре кучи позиций с разными вариациями (30-40шт) я их обрабатываю.

Вот и еще одна причина почему я не использую модули которые копируют опции в фильтр.

Я использую сторонние парсеры-сайты и обрабатываю их с помощью Екселя (Power Query) каждый производитель со своими настройками, на выходе получаю готовый файл под загрузку - CSV Price Pro import/export.

Спойлер

image.thumb.png.0fe4004fa5194ca9c4f7974c1b174ac6.png

 

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


41 минуту назад, aguk84 сказал:

Екселя (Power Query) каждый производитель со своими настройками, на выходе получаю готовый файл под загрузку - CSV Price Pro import/export.

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

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


26 минут назад, Reanimaster сказал:

Я не совсем понимаю как это - привязка фильтра к опции?

 

 

Сорри, может не так выразился: фильтр привязывается к товару исходя от его опции. 

С своей стороны я понимаю так.

И просто взять и скопировать опции товара в фильтр (как мене посоветовал автор) не могу, будет "каша" а не фильтр.

Вот и приходится что то выдумывать. 

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

К слову - то что вы делаете можно делать в ...

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

 

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


Почему не работает оператор {br} в Настройке парсера - Разделитель для повторяющей области?

В пункте Поиск/Замена - при замене чего-то на {br} - работает.

 

Спойлер

image.png.d71e574788c15f6b85680735a955dc3e.png

 

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


1 минуту назад, aguk84 сказал:

при замене чего-то на {br} - работает.

Потому что {br} - это не тег. Это системная функция.

Если нужен разделитель - то нужен html тег.

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


Скажите, а как можно добавить в начало текста что-то, при условии, что текст не пустой?

Вот пример. Я из описания товара выдрал значения атрибута "Слои матраса". В начало текста добавил сам Атрибут "Слои матраса" и все замечательно.

Спойлер

image.png.60c5737b8b58a6b5a3744e8bd74ab214.png

 

Но у меня в одном проекте парсятся и основания и подушки и т.п. Там таких значений нет. И на выходе у основания получается атрибут "Слои матраса" без значений.

Как сделать, чтобы атрибут "Слои матраса" добавлялся только если есть для него значения? Т.е. текст не пустой

Может можно доработать вот такой рег ?

{reg[#^#]}|Любой текст   - Добавить в начало текста что то.

И добавить условие, что там есть хоть какой-то буквенный символ ?

 

 

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


28 минут назад, Aspirinnka1 сказал:

И добавить условие, что там есть хоть какой-то буквенный символ ?

 

{reg[#^([a-zA-Z])|^([а-яА-Я])#ui]}|Любой текст$1$2

 

Даже еще проще

{reg[#^([a-zа-я])#ui]}|Любой текст$1

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


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

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

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

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

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

Вхід

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

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

Important Information

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