mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!
Статья является инструкцией по надстройке Parser

Действие парсера «Проверка на 2 условия»

Действие выполняет проверку исходного значения на 2 условия
(можно, например, использовать для вывода информации о наличии товара, - есть товар, или нет)

Исходными значением для функции является исходный код веб-страницы (или часть HTML кода страницы).
Исходное значение (после применения HTML фильтров, если они заданы) проверяется на присутствие в нём 2 текстовых значений
(маска результата 1 «да» и результата 2 «нет»)
Может быть задана только одна проверочная маска (да или нет), можно задать обе.

В четвёртом параметре (значения результата) указывается, что будет возвращено в результат после выполнения проверок:
здесь мы задаём 3 варианта значений, с разделителем |, например: в наличии|под заказ|нет данных.
Результат будет взят из одного из этих трех значений, в зависимости от результатов выполнения проверок.

Третий результат выводится в 2 случаях: когда ни одно из условий не выполнилось, либо когда заданы обе маски ('да' и 'нет') и оба этих условия выполнены.

Проверяем текстовую строку на присутствие в ней слов «текст» и «слово»:

Если найдется «текст» - в результат попадёт «да», если найдется «слово» - результатом будет «нет».
Если же ни то, ни другое, не будет найдено, - результатом будет текст «не распознано»

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 текст
Признак результата 2 слово
HTML фильтры
Значения результата да|нет|не распознано
Исходное значение Результат
какой-то текст, проверяемый на вхождение 2 значений
да

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 другой текст
Признак результата 2 2
HTML фильтры
Значения результата да|нет|не распознано
Исходное значение Результат
какой-то текст, проверяемый на вхождение 2 значений
нет

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 другой текст
Признак результата 2 текст 2
HTML фильтры
Значения результата да|нет|не распознано
Исходное значение Результат
какой-то текст, проверяемый на вхождение 2 значений
не распознано

Если оба условия выполнены, - в результат попадёт третье значение результата (не распознано)

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 текст
Признак результата 2 какой-то
HTML фильтры
Значения результата да|нет|не распознано
Исходное значение Результат
какой-то текст, проверяемый на вхождение 2 значений
не распознано

Это действие удобно использовать для проверки наличия товара:

(там обычно одно из двух, - либо кнопка В КОРЗИНУ, либо надпись типа НЕТ В НАЛИЧИИ

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 В корзину
Признак результата 2 заказать
HTML фильтры
Значения результата есть|нет
Исходное значение Результат
<div class="pd_in_basket">
<a href="javascript:goPage('/users/notice.html?productId=12610')" title="Заказать">Заказать</a>
</div>
нет

Можно указать НЕСКОЛЬКО вариантов масок для каждого из условий (первые 2 параметра), через разделитель | (вертикальная черта).

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 В корзину|на складе
Признак результата 2 заказать|нет в наличии
HTML фильтры
Значения результата есть|нет|нет
Исходное значение Результат
<div class="pd_in_basket">
<a href="javascript:goPage('/users/notice.html?productId=12610')" title="Заказать">Заказать</a>
</div>
нет

Если наличие товара определяется появлением кнопки «В корзину», можно задать HTML-фильтр div class=InStock для поиска этой кнопки,
и указать лишь одну маску для результата «Да» (перед проверкой исходное значение будет обработано - будет выполнен поиск первого тега div class=InStock)

Действие Параметр Значение
Проверка на 2 условия Признак результата 1 В корзину|на складе
Признак результата 2
HTML фильтры div class=InStock
Значения результата в наличии|под заказ|нет данных
Исходное значение Результат
<div class="InStock" alt="В корзину"></div>
в наличии

Комментарии

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

Без примера, сложно ответить
Зависит от вложенности тегов, и прочих нюансов

К примеру есть тег
текст

Я ищу тег span с атрибутотм title, имя атрибута указываю * и он находит мне массив текстов, но мне нужно не все тексты, а только те если дальше в следующем теге td у атрибута bgcolor будет такое значение FF3333.

Как указать парсеру, используя "проверку выполнения условия", что нужно не принимать ссылки типа: /en/catalog/{четырехзначное число}/{любое значение будь тут буква или цифра}

Параметры:
LIKE
*/en/catalog/####/*
удалить