Дополнительные макросы шаблона вывода


— Макросы шаблона вывода могут использоваться как в редакторе шаблона вывода (на панели инструментов программы кнопка «редактировать шаблон вывода»), так и в настройке обычных и повторяющихся границ парсинга (кнопки: «дополнительные настройки границ парсинга», «настройка повторяющихся границ»)
Ниже приведены далеко не все макросы шаблона вывода. Для того, чтобы ознакомиться со всеми макросами и посмотреть их краткое описание, откройте редактор шаблона вывода (на панели инструментов программы кнопка «редактировать шаблон вывода (ctrl+2)») и изучите дерево макросов в левой части редактора

Content Downloader




Парсинг HTML-таблиц в CSV ([HORIZTABLE], [VERTTABLE]):

Подробное описание макросов [HORIZTABLE] и [VERTTABLE] смотрим тут http://sbfactory.ru/cd/?p=2215




Автоматический парсинг сразу всех характеристик товаров с автоматическим созданием соответствующих колонок CSV ([DYNAMICVALUES]):

Подробное описание макроса смотрим тут http://sbfactory.ru/cd/?p=2170




Проверка на наличие слов (вхождений) в тексте и совершение определенных действий ([CHECKENTRY(вхождение 1||вхождение 2)]текст[/CHECKENTRY]):

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

Примеры использования этого замечательного макроса:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[CHECKENTRY(55)]55555[/CHECKENTRY] -> выведет текст "55555", так как вхождение "55" имеет место быть в тексте ("55555")
 
[CHECKENTRY(333||55)]55555[/CHECKENTRY] -> выведет текст "55555", так как одно из вхождений ("55") содержится в тексте
 
[CHECKENTRY(ab1[WORD])]ab1 cde[/CHECKENTRY] -> выведет текст ab1 cde, так как слово ab1 содержится в тексте
 
[CHECKENTRY(ab1[WORD])]ab1cde[/CHECKENTRY] -> ничего не выведет, так как слово ab1 не содержится в тексте
 
[CHECKENTRY(333||55[ALLMUSTBE])]55555[/CHECKENTRY] -> ничего не выведет, так как параметр [ALLMUSTBE] требует наличия всех вхождений в тексте
 
[CHECKENTRY(333)]55555[ELSETEXT]текст[/CHECKENTRY] -> выведет "текст", так как "текст" стоит после [ELSETEXT], после оператора [ELSETEXT] прописывается то, что нужно вывести, если условие(я) в макросе CHECKENTRY не выполнено(ы)
 
[CHECKENTRY(555)]55555[THENTEXT]текст 1[ELSETEXT]текст 2[/CHECKENTRY] -> выведет "текст 1", так как "текст 1" стоит после [THENTEXT], после оператора [THENTEXT] прописывается то, что нужно вывести, если условие(я) в макросе CHECKENTRY выполнено(ы)
 
[CHECKENTRY(333||55[ALLMUSTBE])]55555333[THENTEXT]7777777[/CHECKENTRY] -> выведет 7777777, так как все вхождения в "55555333" есть
 
[CHECKENTRY(333||55[ALLMUSTBE][IFNOT])]55555333[THENTEXT]7777777[/CHECKENTRY] -> не выведет ничего, так как все вхождения в "55555333" есть, а параметр [IFNOT] преобразует результат условия из TRUE в FALSE (если FALSE, то в TRUE)
 
[CHECKENTRY(333||55[ALLMUSTBE][IFNOT])]55555333[THENTEXT]7777777[ELSETEXT]привет[/CHECKENTRY] -> выведет "привет", который стоит после [ELSETEXT], так как условие не соблюдено (из-за параметра [IFNOT], который преобразовал TRUE в FALSE)
 
[CHECKENTRY(55[FULL])]55555[/CHECKENTRY] -> ничего не выведет, так как параметр [FULL] требует полного совпадения вхождения с "55555", а "55555" не есть "55"
 
[CHECKENTRY(55555||333[FULL])]55555[/CHECKENTRY] -> выведет "55555", так как одно из вхождений полностью совпадает с "55555" (параметр [FULL] требует полного совпадения вхождения с текстом)
 
[CHECKENTRY([ANYTEXT])]текст[THENTEXT]если текст не пустой[ELSETEXT]если текст пустой[/CHECKENTRY] -> выведет "если текст не пустой", так как с параметром [ANYTEXT] проверяется наличие любого текста
 
[CHECKENTRY(55555||333)]55555[THENTEXT][USEDKEY][/CHECKENTRY] -> выдаст "55555", так как оператор [USEDKEY] выводит значение "совпавшего" ключа
 
[CHECKENTRY(55555||333||777)]55555777[THENTEXT][USEDKEYS][/CHECKENTRY] -> выдаст "55555,777", так как оператор [USEDKEYS] выводит значения всех "совпавших" ключей





Исключение парсинга дублей информации с проверкой по ключевому значению (наименование товара, артикул или иная информация) ([DUPIGNORE]):

Пример использования:

1
[DUPIGNORE][KEY]<CD_GRAN_1!>[/KEY][CSVCS]<NIMG><CD_GRAN_2!></NIMG>[CSVCS][VERTTABLE][PREFIX][/PREFIX][MIN]2[/MIN]<CD_GRAN_3!>[/VERTTABLE][/DUPIGNORE]

Где в [KEY]…[/KEY] может отправляться, например, наименование, артикул товара или любая другая информация, по которой будет происходить сверка на дубли. Если отсылаемое значение [KEY] уже есть в «виртуальном списке» значений, то произойдет удаление всего содержимого макроса [DUPIGNORE]…[/DUPIGNORE]. Если отсылаемое значение [KEY] в «виртуальном списке» не присутствует, то оно будет внесено в этот список и удаления содержимого макроса [DUPIGNORE]…[/DUPIGNORE] не произойдет.

Если вам нужно всегда удалять из результатов парсинга отправляемое значение [KEY], то добавьте в любое место макроса [DUPIGNORE] (любое место в пределах макроса) оператор [DELETEKEY].

Для автоматической загрузки и сохранения «виртуального списка» значений [KEY] при парсинге вы можете подключить любой текстовый файл на локальном диске. Подключение файла производится в опциях макроса [DUPIGNORE] (меню — файл — настройка макросов -> DUPIGNORE). Загрузка списка из файла происходит при запуске парсинга или при выполнении предпросмотра результатов парсинга контента, а запись списка значений [KEY] в указанный файл производится только по завершении процедуры парсинга (не при предпросмотре).






Макрос извлечения картинок из html-кода и их вывод через запятую ([CSVIMAGES(метод извлечения)]html-код[/CSVIMAGES]):

Допустим, в коде web-страницы, которую мы парсим (например, страница товара в интернет-магазине), есть блок с изображениями товара, где их несколько штук. Самый удобный способ парсинга сразу всех этих картинок — использование макроса шаблона вывода [CSVIMAGES].

Первым делом, нам нужно задать границу парсинга (например, <CD_GRAN_2!>) для всего блока изображений (ту часть кода, где есть все картинки). Затем, чтобы загрузить эти картинки на диск, а в ячейку CSV вывести их имена файлов через запятую, следует использовать следующую конструкцию:

1
[CSVIMAGES(метод извлечения картинок из кода)]<CD_GRAN_2!>[/CSVIMAGES]

Где метод извлечения картинок из кода может быть: a, img, начало|конец
Рассмотрим эти методы подробнее:
a — Извлечение адресов картинок из тегов ссылок (<a href=адрес>)
img — Извлечение адресов картинок из тегов изображений (<img src=адрес>)
начало|конец — Для парсинга картинок из блока кода, где их адреса взяты в определенные повторяющиеся элементы (работает аналогично повторяющимся границам парсинга).

Можно указать максимальное число картинок:

1
[CSVIMAGES(метод извлечения картинок из кода@2)]<CD_GRAN_2!>[/CSVIMAGES]

Оно указывается через символ @ сразу после метода извлечения картинок из кода (число 2 в примере выше).


PS: Для задания имен файлов картинок вы можете использовать макрос IMAGESNAMES.

Выберите разрешение 720p HD!





Макрос извлечения рубрик товаров из html-кода и их вывод через указанный разделитель ([BREADCRUMBS(чем разделены рубрики в html-коде||чем разделить их в результате)]html-код[/BREADCRUMBS]):

Допустим, в коде web-страницы, которую мы парсим (например, страница товара в интернет-магазине), есть блок с рубриками товара (Электроника — Смартфоны — Apple), где их несколько штук. Самый удобный способ парсинга сразу всех этих рубрик — использование макроса шаблона вывода [BREADCRUMBS].

Первым делом, нам нужно задать границу парсинга (например, <CD_GRAN_2!>) для всего блока с рубриками (ту часть кода, где есть все рубрики). Затем, чтобы спарсить эти рубрики и вывести их в ячейку CSV через указанный разделитель, следует использовать следующую конструкцию:

1
[BREADCRUMBS(тут указать, чем разделены рубрики в html-коде||тут указать, чем разделить их в результате)]<CD_GRAN_2!>[/BREADCRUMBS]

Если вам нужно задать минимальное количество выводимых макросом разделителей (даже если не будет выведена ни одна рубрика), добавьте в параметр [MIN] следующим способом:

1
2
[BREADCRUMBS(разделитель в коде||чем разделить в результате[MIN]минимальное значение)]
[BREADCRUMBS(&rarr;||[CSVCS][MIN]5)]<CD_GRAN_1!>[/BREADCRUMBS]

Где 5 и есть то минимальное количество.
Параметр [MIN] нужно применять в том случае, когда количество рубрик и подрубрик на сайте меняется от товара к товару и вам нужно, чтобы следующие, после рубрик, ячейки CSV не плавали туда-сюда.

Выберите разрешение 720p HD!





Макрос условия [IF1]условие[THEN]если да[ELSE]если нет[/IF1]:

Если условие будет верно, то выведется то, что после [THEN]. Если условие неверно, то выведется то, что после [ELSE] (один из параметров [THEN] или [ELSE] можно опускать).

В условиях можно использовать следующие операторы сравнений:
> больше
>= больше или равно
< меньше <= меньше или равно [TEXTEQUAL] сравнение двух текстовых значений на одинаковость Также в условиях можно использовать простые арифметические операции (+, -, *, /)(но только по одному с каждой стороны оператора условия и без скобок) Примеры использования макроса условий:

1
2
3
4
5
6
7
[IF1]число1>=число2[THEN]да[ELSE]нет[/IF1]
[IF1]число1>=число2[THEN]да[/IF1]
[IF1]число1>=число2[ELSE]нет[/IF1]
[IF1]число1*2>=число2+1[THEN]да[ELSE]нет[/IF1]
[IF1]текст1[TEXTEQUAL]текст2[THEN]выведет это, если текст 1 равен тексту 2[ELSE]нет[/IF1]
[IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>=5[THEN]да[ELSE]нет[/IF1]
[IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>[CHARCOUNT]<CD_GRAN_2!>[/CHARCOUNT][THEN]да[ELSE]нет[/IF1]

Примечание: Макрос CHARCOUNT подсчитывает длину текста в символах.





Макрос случайного вывода текста ({..|..|..|..}):

Например, в шаблоне вывода имеем:

1
{текст1|текст2|текст3|текст4|текст5}

На выходе получим:

1
текст3

Этот макрос случайно выводит один из заданных вариантов (при парсинге контента).

Также может быть использована конструкция следующего вида:

1
{<CD_GRAN_1!>|<CD_GRAN_2!>|<CD_GRAN_3!>}

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

ВАЖНО: Макрос случайного вывода текста по умолчанию отключен! Включить его можно в главное меню -> "настройка" -> "настройка макросов" -> "{..|..|..|..} (макрос случайного вывода текста)".





Макрос перемешивания строк (SHAKESTRINGS):

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

Например, имеем:

1
2
3
<SHAKESTRINGS>Строка1
Строка2
Строка3</SHAKESTRINGS>

В результате получим:

1
2
3
Строка3
Строка1
Строка2

Также между тегами SHAKESTRINGS могут находится макросы границ парсинга:

1
<SHAKESTRINGS><CD_GRAN_1!></SHAKESTRINGS>

В этом случае будут перемешаны все строки текста CD_GRAN_1!.

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





Макрос формата цены (TOPRICE):

Данный макрос преобразует строку с ценой в нужный формат для CSV с поочередным выполнением введенных математических операций (| есть разделитель операций).

Например, имеем:

1
2
3
4
5
6
7
8
<TOPRICE><b> - 12.03 $</b></TOPRICE>
<TOPRICE*0,87><b> - 12.03 $</b></TOPRICE>
<TOPRICE*0,87|+7|/2><b> - 12.03 $</b></TOPRICE>
<TOPRICE>7777,777</TOPRICE> - по умолчанию идет округление до сотых
<TOPRICE>[R-1]7777,777</TOPRICE> - округление до десятых
<TOPRICE>[R0]7777,777</TOPRICE> - округление до целых
<TOPRICE>[R1]7777,777</TOPRICE> - округление до десятков
<TOPRICE>[R2]7777,777</TOPRICE> - округление до сотен

В результате получим:

1
2
3
4
5
6
7
8
12,03
10,47
8,73
7777,78 - по умолчанию идет округление до сотых
7777,8 - округление до десятых
7778 - округление до целых
7780 - округление до десятков
7800 - округление до сотен

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





Ссылка на источник (CD_DOCURL!):

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

Например, мы парсим контент со страницы http://sbfactory.ru/?p=600, в шаблоне вывода имеем:

1
Источник: <CD_DOCURL!>

После парсинга получим:

1
Источник: http://sbfactory.ru/?p=600





Создание короткой новости (SHORT):

С помощью макроса SHORT можно обрезать текст любой границы парсинга. Параметр len задает количество символов в короткой новости (остальное обрежется). При подсчете количества символов теги не учитываются.

1
2
Короткая новость: <SHORT len="250" //><CD_GRAN_1!></SHORT>...
Полная новость: <CD_GRAN_1!>

Также можно использовать параметр end

1
Короткая новость: <SHORT len="250" end=".|!|?" //><CD_GRAN_1!></SHORT>

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

1
Короткая новость: <SHORT len="250" end="<br>" crop //><CD_GRAN_1!></SHORT>

Если добавить параметр crop, то функция обрежет и br (в данном случае). Если этот параметр будет отсутствовать в макросе, то тег br останется в тексте.





Вставка тега more (IMORE):

С помощью макроса IMORE можно вставить тег <!—more—> в указанный текст. Параметр len задает количество символов, после которого будет вставлен тег <!—more—>. При подсчете количества символов теги не учитываются.

1
<IMORE len="250" //><CD_GRAN_1!></IMORE>

Также можно использовать параметр end

1
<IMORE len="250" end=".|!|?" //><CD_GRAN_1!></IMORE>

В этом случае программа отсчитает 250 символов, затем найдет точку, восклицательный знак или вопросительный знак и вставит в это место тег <!—more—>. Параметров end может быть несколько, они разделяются символом |.





Задание границ парсинга для указанных url (GETMORECONTENT):

С помощью этого макроса можно парсить в один документ сразу с нескольких url. Также он может служить для задания неограниченного количества границ парсинга.

Читать подробный мануал





Удаление указанных тегов ([DELTAGS:][/DELTAGS]):

Удаление указанных тегов в заданном тексте

1
[DELTAGS:a,br,p]текст, в котором надо удалить теги[/DELTAGS]

где a,br,p — теги, которые надо удалить из «текст, в котором надо удалить теги» (теги указываются через запятую, без пробелов, без скобок)





Преобразование html-кода в текст ([HTMTOTXT:][/HTMTOTXT]):

Удаление всех тегов, кроме указанных

1
[HTMTOTXT:a,br,p]текст, в котором надо удалить теги[/HTMTOTXT]

где a,br,p — теги, которые надо оставить в «текст, в котором надо удалить теги» (теги указываются через запятую, без пробелов, без скобок)


Если вам не нужно обрабатывать какую-нибудь область кода, то обозначьте ее в [EXCLUDE] (начало не затрагиваемой области кода||конец не затрагиваемой области кода)

1
[HTMTOTXT:a,br,p][EXCLUDE]<code>||</code>[/EXCLUDE]текст, в котором надо удалить теги[/HTMTOTXT]

В этом случае, макрос [HTMTOTXT] не затронет все, что находится внутри <code>…</code>


Для отключения преобразования «экранов» скобок HTML-тегов (lt, gt), добавьте lt и gt следующим образом

1
[HTMTOTXT:a,br,p,lt,gt]...

При этом необходимо отключить функцию преобразования HTML мнемоников в окне: вкладка "Контент" -> группа "Парсинг и обработка" -> кнопка "дополнительные функции обработки контента".





Вставка числового ID ([INT_ID]):

Вставка числового ID в любое место шаблона вывода. ID будет увеличиваться с каждым новым загружаемым документом (сначала вставится 1, затем 2, 3, 4, 5 и так далее…). Стартовое значение макроса можно указать в его настройках (в окне «редактор шаблона вывода» на панели инструментов: кнопка «дополнительные макросы шаблона вывода» — «[INT_ID]» — «настроить макрос»)

1
[INT_ID]

Для сброса макроса [INT_ID] на его стартовое значение вставьте в любое место шаблона вывода оператор [RESET_INT_ID].





Макрос для импорта рубрик в WordPress ([CATS][/CATS]):

Вставьте следующую конструкцию в шаблон вывода для присвоения рубрик, подрубрик, подподрубрик (и так далее) к записям при создании файла импорта в WordPress.

1
[CATS]Автомобили///<CD_GRAN_1!>///<CD_GRAN_2!>[/CATS]

Используйте макросы CD_GRAN для вставки названий рубрик в макрос CATS (например, при парсинге вместо CD_GRAN_1! вставится «Toyota», а вместо CD_GRAN_2! вставится «Mark II»). В качестве разделителя/разделителей рубрик от подрубрик используйте ///.

После парсинга зайдите в «обработка и импорт в КМС» (на панели инструментов), добавьте загруженные файлы. Затем, на панели инструментов, нажмите «создать файл импорта» и, в открывшемся диалоговом окне, нажмите кнопку «создать файл импорта». После этих действий программа создаст файл импорта со структурой рубрик согласно макросам CATS в каждой статье. Сами макросы будут удалены из текста статей.

PS: Макросы CATS не работают при создании файлов импорта для DLE/старых версий WP.





Макрос синонимизации ([SYN][/SYN]):

Для синонимизации контента (замены слов на синонимы) вставьте следующую конструкцию в шаблон вывода

1
[SYN]Текст для синонимизации[/SYN]

Для отключения синонимизации внутреннего кода HTML-тегов добавьте параметр [AVOIDHTMLTAGS]

1
[SYN][AVOIDHTMLTAGS]Текст для синонимизации[/SYN]

База синонимов лежит в папке с программой (файл data.txt) и может быть заменена на другую с аналогичным форматом (слово,синоним1,синоним2,синоним3,…,синоним9).





[IMAGESNAMES]имя[/IMAGESNAMES] (задать имена файлов загружаемых изображений):

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

В каждом документе макрос может применяться только 1 раз.

1
2
3
Другой текст/код
[IMAGESNAMES]<FILE=C:\content\keys.txt>[/IMAGESNAMES]
Другой текст/код





[DOCNAME] (задание имен файлов сохраняемых документов):

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

В каждом документе макрос может применяться только 1 раз.

1
2
3
Другой текст/код
[DOCNAME]777\1234567.txt[/DOCNAME]
Другой текст/код

Как видно, тут задается сразу имя папки (777) и имя файла. Имя папки можно не указывать:

1
2
3
Другой текст/код
[DOCNAME]<CD_GRAN_1!>.txt[/DOCNAME]
Другой текст/код

У макроса [DOCNAME] есть набор параметров, которые прописываются внутри его:

1
2
3
Другой текст/код
[DOCNAME][CLEAR][TRANSLITE][NOFOLDER][UNIQUE]<CD_GRAN_1!>.txt[/DOCNAME]
Другой текст/код

Где:
[CLEAR] — удалит все лишние символы и опустит регистр всех букв
[TRANSLITE] — преобразует русские буквы в транслит
[NOFOLDER] — не будет переименовывать папку и не создаст подпапки для сохранения файлов (даже если встретятся символы: \, /)
[UNIQUE] — при парсинге всех последующих WEB-документов всегда будет использоваться первое заданное имя файла (при повторном запуске процедуры парсинга, присваемое всем имя документа будет сброшено и снова взято из первого «сработавшего» [DOCNAME])





[DFN]папка\имя{ext}расширение[/DFN] (задать имена файлов, которые загружаются макросом DOWNLOADFILE):

Этот макрос используется для задания имен файлов, которые загружаются на диск макросом шаблона вывода DOWNLOADFILE. Пропишите [DFN]имя[/DFN] в любое место шаблона вывода перед нужным макросом DOWNLOADFILE (можно прописывать перед каждым макросом DOWNLOADFILE несколько раз в документе). При парсинге макрос(ы) [DFN] будет(ут) удалятся из сохраняемых документов.

1
Другой текст/код [DFN]<CD_GRAN_2!>[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Где CD_GRAN_2! — граница парсинга с желаемым именем файла.


Если вы хотите раскладывать файлы по разным папкам, то задайте путь используя символ \

1
Другой текст/код [DFN]имя папки или <CD_GRAN_1!>\<CD_GRAN_2!>[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Где CD_GRAN_1! — желаемое имя папки для сохраняемых файлов, а CD_GRAN_2! — граница парсинга с именем файла.


Если вы хотите задать расширение, то используйте {ext}

1
Другой текст/код [DFN]<CD_GRAN_2!>{ext}jpg[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

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


Если вы хотите, чтобы файлы с одинаковыми именами перезаписывались (а не создавались новые), то добавьте [REWRITE] в любое место макроса

1
Другой текст/код [DFN][CLEAR][TRANSLITE][NOFOLDER]<CD_GRAN_2!>{ext}jpg[REWRITE][/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Где также:
[CLEAR] — удалит все лишние символы и опустит регистр всех букв
[TRANSLITE] — преобразует русские буквы в транслит
[NOFOLDER] — не будет переименовывать папку и не создаст подпапки для сохранения файлов (даже если встретятся символы: \, /)





ONELINE (преобразование выбранного текста в одну строку):

До обработки:

1
2
3
4
5
6
7
8
9
10
11
[ONELINE:]Строка 1
Строка 2
Строка 3[/ONELINE]
 
[ONELINE:<br>]Строка 1
Строка 2
Строка 3[/ONELINE]
 
[ONELINE:-]Строка 1
Строка 2
Строка 3[/ONELINE]

После обработки:

1
2
3
4
5
Строка 1Строка 2Строка 3
 
Строка 1<br>Строка 2<br>Строка 3
 
Строка 1-Строка 2-Строка 3

Примечание: Если вам нужно заменить переносы строк на [CSVCS] или [CSVLB], прописывайте их в макросе как (CSVCS) и (CSVLB) соответственно!





[REPLACE(что заменить|на что заменить)]…[/REPLACE] (поиск-замена):

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

1
2
3
4
[REPLACE(
1247|3333
<{skip}>|{skip}
)]<CD_GRAN_1!>[/REPLACE]

1247|3333 — Заменит все «1247» на «3333»
<{skip}>|{skip} — удалит все скобки тегов

Также параметры поиск-замены можно разделять не символом переноса строки, а макросом {break}

1
[REPLACE(1247|3333{break}<{skip}>|{skip})]<CD_GRAN_1!>[/REPLACE]

Подробнее о параметрах поиск-замены читаем тут.





[WEBASYSTIMG(разделитель)]image.jpg[/WEBASYSTIMG] (image.jpg,image_thm.jpg,image_enl.jpg):

На входе имеем:

1
[WEBASYSTIMG(,)]image.jpg[/WEBASYSTIMG]

На выходе получим:

1
image.jpg,image_thm.jpg,image_enl.jpg





Фильтрация документов по условию [DIGIFILTER]…[/DIGIFILTER]:

Иногда требуется отсеять часть статей или товаров, числовой параметр которых не соответствует желаемому. Например, нужно отфильтровать товары, цена которых меньше, чем 800 рублей. Для таких целей можно использовать макрос шаблона вывода [DIGIFILTER].

Возможны три условия: число больше, меньше либо равно (>, <, =) [DIGIFILTER]x<100[/DIGIFILTER] [DIGIFILTER]x>5.7[/DIGIFILTER] [DIGIFILTER]x=777[/DIGIFILTER]

Где x-любая граница парсинга (любое число). В функции используются числа типа real (5, 5.5, 7.777). Если, допустим, x будет «цена 777 руб.», то функция преобразует этот текст в число 777.0. Если x будет равно «.text5», то функция преобразует текст в 0.5

При парсинге макрос [DIGIFILTER] будет удаляться!

При парсинге 1 документа макрос можно вызывать много раз. Например:

[DIGIFILTER]<CD_GRAN_1!><100[/DIGIFILTER][DIGIFILTER]<CD_GRAN_1!>>5.7[/DIGIFILTER][DIGIFILTER]<CD_GRAN_1!>=777[/DIGIFILTER][DIGIFILTER]<CD_GRAN_1!>=555[/DIGIFILTER][DIGIFILTER]<CD_GRAN_1!>=888[/DIGIFILTER]

В этом случае будут сохраняться все документы, <CD_GRAN_1!> которых будет меньше 100, больше 5.7, равен 777, 555 или 888.





Фильтрация строк по ключевым словам (удаление лишних строк, которые содержат или не содержат заданные ключевые слова):

Данная конструкция оставит в тексте "апельсин вкусный" и "оранжевый мандарин", так как "апельсин" и "мандарин" присутствуют в списке ключевых слов [KEYS]:

1
2
3
[STRINGSFILTER][KEYS]апельсин|мандарин[/KEYS]апельсин вкусный
оранжевый мандарин
банан[/STRINGSFILTER]

Данная конструкция удалит из текста "апельсин вкусный" и "оранжевый мандарин", так как "апельсин" и "мандарин" присутствуют в списке ключевых слов [KEYS] и в макросе присутствует параметр [DELETE]:

1
2
3
[STRINGSFILTER][DELETE][KEYS]апельсин|мандарин[/KEYS]апельсин вкусный
оранжевый мандарин
банан[/STRINGSFILTER]





Преобразование текста в транслит:

До обработки:

1
[TOTRANSLITE:clear,regdown,convertspaces,clearspaces]  Тестовая строка Test string 1234567890 !@#$%^&*()  [/TOTRANSLITE]

После обработки:

1
testovaja_stroka_test_string_1234567890_^()

Описание параметров макроса:
— clear: удаление лишних символов типа ?&
— regdown: опускание регистра символов
— convertspaces2: преобразование пробелов в знак нижнего подчеркивания
— convertspaces: преобразование пробелов в знак дефиса
— clearspaces: удаление пробелов из начала и из конца строки





[COPY:от какого по счету символа копировать|сколько символов скопировать]текст[/COPY] (обрезка лишних символов текста (скопирует часть текста и вставит ее вместо макроса)):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
До выполнения:
[COPY:1|2]12345678[/COPY]
После:
12
 
До выполнения:
[COPY:2|2]12345678[/COPY]
После:
23
 
До выполнения:
[COPY:2|3]12345678[/COPY]
После:
234
 
До выполнения:
[COPY:1|{LENGTH}]текст[/COPY]
После:
текст
 
До выполнения:
[COPY:1|{LENGTH}-1]текст[/COPY]
После:
текс
 
До выполнения:
[COPY:{LENGTH}-1|2]текст[/COPY]
После:
ст
 
До выполнения:
[COPY:{POS:A}|{LENGTH}]1A777[/COPY]
После:
A777
 
До выполнения:
[COPY:{POS:A}+1|{LENGTH}]1A777[/COPY]
После:
777
 
До выполнения:
[COPY:{POS:777}|{LENGTH}]12777[/COPY]
После:
777

{LENGTH} — числовое значение длины текста в пределах макроса COPY (в символах). Допускаются операции сложения и вычитания.
{POS:СИМВОЛ(Ы)} — числовая позиция от начала строки до указанных в POS символов (подстроки).





Макрос задания переменных и их многократного вывода в результат ([VAR]):

Данный макрос разработан для задания переменных и их вставки в разные части документа (макросы, заданные как переменные и вставленные в документ несколько раз, будут выполнены только 1 раз). Например, вы парсите картинку и хотите вывести ее несколько раз в разных местах документа. Либо вы используете макрос случайного вывода текста {..|..}, и хотите вывести результат его работы в нескольких местах результирующего документа.

1
2
3
4
5
6
7
8
Задание переменных:
[VAR]
[SET:имя переменной 1]значение переменной 1[/SET]
[SET:имя переменной 2]значение переменной 2[/SET]
[/VAR]
 
[VAR:имя переменной 1] - вывод в результат "значение переменной 1"
[VAR:имя переменной 2] - вывод в результат "значение переменной 2"





Замена умышленно-подмененных схожих по написанию символов английского/русского языка (a, c, e, o, p…) на оригинальные ([FIXLAYOUT]):

FIX — исправить
LAYOUT — раскладка

Например, в русском тексте есть слово aпeльcин, которое читается вполне нормально, но не является русским словом (буквы a, e, c в нем английские). К такому методу уникализации контента прибегают некоторые сайты в сети.

Для правки такого рода текста (с подмененными буквами) в Content Downloader существует макрос [FIXLAYOUT]:

1
[FIXLAYOUT(язык)]текст для правки[/FIXLAYOUT]

В качестве параметра «язык» могут фигурировать выражения eng или rus (в зависимости от того, какой текст вы исправляете).

В окне предпросмотра парсинга контента вы можете нажать сочетание клавиш ctrl+e или ctrl+r для подсветки русских или английских символов в получившемся тексте. Это поможет выявить подмененные буквы.





Добавление URL-адреса в список ссылок при парсинге ([ADDURL]):

Макрос шаблона вывода [ADDURL] применяется для пополнения списка ссылок при парсинге контента (ссылки будут добавляться в конец списка)

1
[ADDURL][ALLOWDUP][IGNORESAME]http://SBFactory.ru/?p=600[/FIRST_REPLACE][/ADDURL]

Параметр [ALLOWDUP] позволяет добавлять в список ссылок одну и ту же ссылку несколько раз (включает возможность добавления дублей).
Параметр [IGNORESAME] запрещает добавление в список ссылок ссылки, аналогичной (равной) той, с которой идет парсинг.

Параметры макроса [ADDURL] можно не указывать.

Примечание: Если вам нужно добавить ссылку, содержащую в себе [PARAM], экранируйте в ней этот оператор следующим образом -> {PARAM}.





Размножение строки с использованием в ней нарастающей целочисленной переменной ([GENERATE]):

При использовании такой конструкции:

1
[GENERATE][FROM]1[/FROM][TO]2[/TO][INC]1[/INC][SEP]{br}[/SEP]значение: [VARIABLE][/GENERATE]

Получим результат:

1
2
значение: 1
значение: 2

Описание параметров макроса:
[VARIABLE] — нарастающая с каждым циклом целочисленная переменная, которая вставляется в нужное место строки для генерации
[FROM] — начальное значение целочисленной переменной [VARIABLE] [TO] — конечное значение целочисленной переменной [VARIABLE] [INC] — инкремент переменной [VARIABLE] (на сколько будет увеличиваться с каждым циклом)
[SEP] — чем разделять циклы в результате работы макроса

Пример использования:

1
[GENERATE][FROM]1[/FROM][TO]<CD_GRAN_2!>[/TO][INC]1[/INC][SEP]{br}[/SEP]<GETMORECONTENT><URL="WEB-адрес?page=[VARIABLE]"><START="<table><tr><td>"><STARTCOUNT="0"><END="</table>"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>[/GENERATE]

Данная конструкция размножит макрос <GETMORECONTENT>. Обратите внимание на возможность использования значений границ парсинга в параметрах макроса [GENERATE]



Если вам нужно генерировать от и/или до дробного числа, добавляйте оператор {FLOAT} в параметры [FROM] и/или [TO].

Например, имеем:

1
[GENERATE][FROM]{FLOAT}1,1[/FROM][TO]3[/TO][INC]1[/INC][SEP]{br}[/SEP]значение: [VARIABLE][/GENERATE]

Получим:

1
2
3
значение: 1,1
значение: 2
значение: 3

Например, имеем:

1
[GENERATE][FROM]1,1[/FROM][TO]{FLOAT}3,3[/TO][INC]1[/INC][SEP]{br}[/SEP]значение: [VARIABLE][/GENERATE]

Получим:

1
2
3
значение: 2
значение: 3
значение: 3,3

Например, имеем:

1
[GENERATE][FROM]{FLOAT}1,1[/FROM][TO]{FLOAT}3,3[/TO][INC]1[/INC][SEP]{br}[/SEP]значение: [VARIABLE][/GENERATE]

Получим:

1
2
3
4
значение: 1,1
значение: 2
значение: 3
значение: 3,3





Извлечение из HTML-кода URL-адресов с желаемыми анкорами ([GETURLSBYANCHORS]):

Макрос извлекает из HTML-кода желаемые адреса ссылок и построчно выводит их в результат (с возможностью вывода анкоров). С помощью макроса [GETURLSBYANCHORS] можно с легкостью парсить, например, URL-адреса страниц форм обратной связи с большого списка сайтов.

1
[GETURLSBYANCHORS(параметры)]HTML-код, содержащий теги a[/GETURLSBYANCHORS]

Параметры указываются построчно (либо разделяются комбинацией символов ||).
Если в качестве параметров указать символ *, то макрос извлечет все адреса ссылок из HTML-кода:

1
[GETURLSBYANCHORS(*)]HTML-код, содержащий теги a[/GETURLSBYANCHORS]

Если добавить [ADDANCHOR] в любое место параметров (добавляется один раз в независимости от количества введенных параметров):

1
[GETURLSBYANCHORS(*[ADDANCHOR])]HTML-код, содержащий теги a[/GETURLSBYANCHORS]

То в результате работы макроса к каждому URL будут добавлены их анкоры ссылок (URL||анкор).

Для исключения попадания дублей ссылок в результат (в пределах каждого одного документа), добавьте [NODUP] в любое место параметров (добавляется один раз в независимости от количества введенных параметров):

1
[GETURLSBYANCHORS(*[ADDANCHOR][NODUP])]HTML-код, содержащий теги a[/GETURLSBYANCHORS]

То в результате работы макроса к каждому URL будут добавлены их анкоры ссылок (URL||анкор).

Если указать следующие параметры:

1
2
3
карта
адрес
[ADDANCHOR]

То в результате работы макроса вы можете получить:

1
2
http://...||карта сайта
http://...||адреса компании

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

Также в параметрах можно использовать регулярные выражения (http://sbfactory.ru/cd/?p=2332). Для этого добавьте re: в начало соответствующих параметров:

1
2
3
карта
re:регулярное выражение
адрес

Примечание: Для изменения модификаторов регулярных выражений (возможность включения регистронезависимого режима и прочее), пользуйтесь строкой модификаторов (ctrl+8 -> вкладка «RegExpr»). Например, чтобы включить регистронезависимый режим, используйте такую строку модификаторов: gsrimx.





Генерация уникальных ID товаров или статей при парсинге контента ([SKU_UNIQUE]):






Вставка строк из файла на диске ([FILE]):

Читаем тут http://sbfactory.ru/cd/?p=2951





Получение максимального, минимального, среднего или случайного значения из ряда чисел ([GETVALUE]):

1
2
3
4
5
6
7
8
[GETVALUE(тип действия|чем разделены числа)]ряд чисел[/GETVALUE]
[GETVALUE(max|,)]100000 рублей, 200000 рублей, 300000 рублей[/GETVALUE] - даст в результате 300000 (получение максимального значения, max)
[GETVALUE(min|;)]100000 рублей; 200000 рублей; 300000 рублей[/GETVALUE] - даст в результате 100000 (получение минимального значения, min)
[GETVALUE(average|,)]100000 рублей, 200000 рублей, 300000 рублей[/GETVALUE] - даст в результате 200000 (получение среднего значения, округленного до целых, average)
[GETVALUE(average-1|,)]100001 рублей, 200000 рублей, 300000 рублей[/GETVALUE] - даст в результате 200000,3 (получение среднего значения, округленного до десятых, average-1)
[GETVALUE(average-2|,)]100001 рублей, 200000 рублей, 300000 рублей[/GETVALUE] - даст в результате 200000,33 (получение среднего значения, округленного до сотых, average-2)
[GETVALUE(average-3|,)]100001 рублей, 200000 рублей, 300000 рублей[/GETVALUE] - даст в результате 200000,333 (получение среднего значения, округленного до тысячных, average-3)
[GETVALUE(random|,)]100000 рублей, 200000 рублей, 300000 рублей[/GETVALUE] - даст в результате 100000 или 200000 или 300000 (получение случайного значения из ряда чисел, random)





Получение редиректов ссылок (макрос [GETREDIRECT]):

Например, есть ссылка, при открытии которой происходит редирект (перенаправление) на другой URL-адрес. Чтобы получить адрес, на который происходит перенаправление, используется макрос [GETREDIRECT].

1
2
3
4
5
6
7
8
9
1 [GETREDIRECT]http://SBFactory.ru/original[/GETREDIRECT]
2 [GETREDIRECT][LIB2]http://SBFactory.ru/original[/GETREDIRECT]
3 [GETREDIRECT][GRHEADERS]Host: sbfactory.ru
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0[/GRHEADERS]http://SBFactory.ru/original[/GETREDIRECT]

Где параметр [LIB2] предназначен для включения альтернативной библиотеки для отправки запросов (рекомендуется использовать всегда).
Параметр [GRHEADERS] предназначен для отправки HTTP-заголовков (требуется на некоторых сайтах).

При парсинге на место макроса [GETREDIRECT] вставляется «редиректная ссылка» (куда было совершено перенаправление). Если, по какой-либо причине, запрос к ссылке не удался, на месте макроса остается оригинальная (исходная ссылка). При выполнении процедуры предпросмотра результатов парсинга контента, в случае с неудачным запросом к ссылке, в скобках отображается сообщение об ошибке.

Макрос работает с HTTP и HTTPS протоколами.





Подсчет количества элементов текста, подсчет количества вхождений указанной подстроки в тексте (макросы [COUNTUP1] и [COUNTUP2]):

Описание работы данных макросов есть на этой странице (клик)





Преобразование многострочных HTML-таблиц в двухстрочные (методом объединения данных первых нескольких рядов ячеек, кроме последнего, макрос [MERGETABLEROWS]):

Описание работы данного макроса есть на этой странице (клик)

1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 18, средний балл: 4,72)
Загрузка...
Автор: admin, 18 апреля 2011
Рубрики: Парсинг
Метки:
41 комментарий к сообщению: “Дополнительные макросы шаблона вывода”
  1. foto:

    Еще бы добавить случайное перемешивание строк и цены бы не было данному софту

  2. Денис:

    Возможно не туда пишу, хорошо бы из строки типа «http://ex.xom/15.html» получать наименование страницы, чтобы сформировать ссылку <a href = "»>[номер из ссылки()]

  3. Admin:

    CD_DOCURL! засунуть в PHP_SCRIPT (http://sbfactory.ru/cd/?p=186) и вернуть из скрипта «номер из ссылки».

  4. Admin:

    Или, если есть возможность, парсить из кода страницы это заветное число.

  5. Андрей:

    Можно ли сделать функцию назначения поля посредством нахождения определённых слов в границе парсинга.
    Допустим я хочу задать рубрику:
    Блюда из капусты
    Есть заданные поля парсинга где встречаются слова капуста» Тушёная капуста,Квашеная капуста,салат из капусты»
    Я вписываю ключевые слова: капуста,капустой,кавасить капусту
    Включаю опцию выводить Название по ключу и вписываю для вывода в шаблоне «Блюда из капусты»
    Как то так…

  6. Илья:

    Нужно что типа SHAKESTRINGS, только чтобы перемешивал предложения внутри макроса. От точки до точки.
    Часто довольно большие тексты пишутся без переноса в одну строку 🙂
    Или выложите пхп скрипт для этого, ибо нуб 🙂 написать не могу

  7. можно ли создать еще один макрос —
    назовем его «МАКРОС ПОСЛЕДОВАТЕЛЬНОСТИ». если в него поместить несколько границ — они вычисляются последовательно, и как только одна из них не пустая — все остальные пропускаются.
    это позволило бы очень гибко управлять границами парсинга и прочти полностью исключить возможные сбои.

    • admin:

      Здравствуйте!
      Это уже давно есть: на панели инструментов «дополнительные настройки границ парсинга». Там в каждой вкладке есть «если граница парсинга окажется пустой, то заместо нее будет выводится следующий текст» туда добавить макрос следующей (из вашей последовательности) границы парсинга, например: <CD_GRAN_2!>.
      Если потребуется, во вкладку макроса <CD_GRAN_2!> (в тех же дополнительных настройках границ парсинга) вставьте макрос <CD_GRAN_3!> и так далее.
      В результате: если граница парсинга 1 окажется пустой, то будет выведена граница парсинга 2 (<CD_GRAN_2!>), если граница парсинга 2 окажется пустой, то будет выведена <CD_GRAN_3!> и так далее.
      Успехов!

      • не работает 🙁
        обычный текст выводит на ура, макрос же просто игнорируется.

        • разобрался сам. описанную схему убивает функция «htm to txt», которая расценивает обозначение макроса как обычный тег и удаляет его.
          схема жизнеспособна только в случае отключения этой функции, либо отдельного прописывания в списке исключаемых тегов всех макросов границ, задействованых в последовательности.

  8. Леха:

    на сайте номер телефона скрыт под JavaScript вот что получается в тексте:

    Включите JavaScript для просмотра информации

    как обойти такую ситуацию?

  9. azat:

    Макрос WEBASYSTIMG лучше «разделитель» по умолчанию поставить не «;», а просто «,»

  10. azat:

    Да чуть не забыл, спасибо за макрос.

  11. admin:

    Пожалуйста.

    Content Downloader версии 30.70 (10.02.2012) (Обновление по просьбе человека):

    — Доработан макрос шаблона вывода WEBASYSTIMG (http://sbfactory.ru/cd/?p=261).

  12. Mark:

    Здравствуйте.
    Есть проблема при парсинге повторяющихся границ на одной странице!!! Если отсутствует один из элементов парсинга напр. телефон или емейл, то в конечной выдаче используя все смещается. Это реально проблема, если полей больше чем 50. Или я что то не заметил?

  13. Нурлан:

    Здравствуйте!

    Хотел спарсить данные сразу БД.
    В одном столбце нумерация начинается с 1. Ставлю макрос [INT_ID].
    А второй столбец должен начинаться с 0. как можно реализовать?
    Выше написано: «Стартовое значение макроса можно указать в его настройках (в окне «редактор шаблона вывода» на панели инструментов: кнопка «дополнительные макросы шаблона вывода» — «[INT_ID]» — «настроить макрос»)»
    Покажите пожалуйста на скриншотах, что-где нужно писать.

  14. Александр:

    как сделать чтоб на сайте загружалась статья с картинками с другого сайта не скачивая её оттуда?

  15. Ирина:

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

  16. Александр:

    Макрос [SYN][/SYN] выдает только первый синоним, удалил пробелы, заглавные буквы, получил строку в data.txt: transom,вариант1,вариант2,вариант3,вариант4,вариант5
    в настройках повторяющихся границ: [SYN][VALUE][/SYN]
    получаю: вариант1 вариант1 вариант1 …..
    Что не так ? оч. надо…
    Спасибо

  17. хорошее описание, но некоторые примеры совсем непонятны для человека, только начинающего знакомство с софтом.
    текст написан исходя из того, что читатель уже имеет хорошее представление о работе программы, а откуда его взять, не прочитав таких текстов, замкнутый круг выходит.
    вот, например:
    в [HTMTOTXT:][/HTMTOTXT]
    предлагается пример
    [HTMTOTXT:a,br,p]текст, в котором надо удалить теги[/HTMTOTXT]
    в шаблонах вывода никакой текст не пишется, там пишутся только тэги, границы, макросы.
    откуда же тут берется «текст, в котором надо удалить теги» неясно. то есть надо вручную какой-то текст вырезать из браузера и вставлять в шаблон вывода?
    тогда в чем вообще смысл программы, которая сама должна парсить тексты?

    некоторые примеры такого вида непонятны и соответственно непонятно как конкретно использовать макрос.

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

  18. proger:

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

  19. Sergey:

    2proger , к сожалению Вы далеко не «продвинутый» пользователь, раз для вас данные макросы с примерами не понятны… идите курите форум, а потом в макросы лезьте…

  20. kreol2013:

    моделирование ситуации И (когда условия 2 и больше)
    [REPLACE(00|1{break}01|2{break}10|3{break}11|4)][IF1][CHARCOUNT][/CHARCOUNT]>0[THEN]1[ELSE]0[/IF1][IF1][CHARCOUNT][/CHARCOUNT]>0[THEN]1[ELSE]0[/IF1][/REPLACE]
    1= 0 И 0
    2= 0 И 1
    3= 1 И 0
    4= 1 И 1

  21. Света:

    Добрый день!
    У Вас все чудесно написано «для умных», для тех, кто «не очень», укажите, пожалуйста, куда и как вставить этот макрос?
    [IMAGESNAMES]имя[/IMAGESNAMES] (задать имена файлов загружаемых изображений):

  22. Света:

    Нужно чтобы на выходе было image1 и т.д. с сохранением нумерации 2,3,4 и т.д.
    Спасибо!

  23. Света:

    Тут все умные… помогите! Разобралась как переименовать изображение, но у меня нумерация идет через пробел image_1, а мне нужно банально image1 и т.д. Это можно сделать?….

  24. Пётр:

    Добрый день!
    А можно задать имя_файлов_сохраняемых_документов по названию_проекта.cdp?
    На выходе должен получится файл — название_проекта.csv
    Спасибо!

  25. Артем:

    Добрый день. Подскажите, а можно каким-то образом получить ссылку на страницу, с которой была собрана ссылка на текущую страницу? Конкретный пример: в интернет-магазине нет breadcrumbs, а необходимо разбить товар по группам. Для этого нужно получить ссылку на страницу с группой для каждого товара. Надеюсь, понятно объяснил.

    • admin:

      Здравствуйте.

      Такого функционала сейчас нет. Но, думаю, можно найти альтернативное решение для большинства подобных сайтов. Пожалуйста, создайте соответствующую тему на форуме http://forum.sbfactory.ru/ (с указанием адреса сайта) и мы вам постараемся помочь.

      Спасибо!

  26. Сергей:

    Здравствуйте
    Есть сайт с множеством товаров — без характеристик товаров на странице товара, но на этом сайте множество разных товарных категорий (рубрик) где 1 и тот же товар (с одинаковым SKU) встречается по несколько раз. В принципе нужно использовать части эти рубрик для создания характеристик товара, дабы не парсить весь этот ненужный огород и облегчить жизнь.
    Хотелось бы спросить — как можно из всех разных рубрик в которых есть данный товар получить разные характеристики товаров, при этом исключив дубли товаров добавляя лишь разные характеристики к 1му товару с 1м sku

    Прошу прощения что не понятно объяснил, надеюсь что поняли

    • admin:

      Здравствуйте.

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

      С уважением к вам, Сергей.

  27. Сергей:

    тогда еще вопрос — есть ли функция массива условий
    Например есть спасенное значение цены, мне нужно:

    1. если цена меньше 50, то умноржение на 4
    2. если цена от 51 до 100, то умножение на 3
    3. если неца от 101 до 1000, то умножение на 2
    4. если цена от 1001 до 3000, то умножение на 1,5
    6. если цена от 3001 до ~? то умножение на 1,3

    И т.п.

    • admin:

      Здравствуйте.

      Простите за долгий ответ.

      Такие манипуляции с ценами, думаю, лучше реализовать на подключаемом PHP-скрипте с локального или WEB-сервера.

      http://sbfactory.ru/cd/?p=2104

      Если с этим совсем все «туго» -> обращайтесь на форум, поможем готовым решением.

      С уважением к вам, Сергей.

  28. Руслан:

    Не работает Replace внутри DFN
    Например,
    [DFN][REPLACE(Модель № : |FM)][/REPLACE][/DFN]

    Или я что то ни так делаю?

    • admin:

      Здравствуйте.

      Совместно с макросом [DFN] используйте макрос поиск-замены [FIRST_REPLACE]

      [DFN][FIRST_REPLACE(Модель № : |FM)][/FIRST_REPLACE][/DFN]

      В будущем смотрите лог выполнения функций (в нижней части окна предпросмотра парсинга контента).

      С уважением к вам, Сергей.

  29. denis:

    Здравствуйте.
    После просмотра видео выше Исключение парсинга дублей возникает вопрос — нет такой возможности «прикрутить» к макросу текстовый файл в котором будет список слов, ссылок при нахождение которых данный пост НЕ парсится, имею ввиду даже в описании (тоесть где символов больше 500)?

    • admin:

      Здравствуйте.

      Используйте для этого функцию фильтрации документов по списку ключевиков (shift+ctrl+f). Туда можно будет ввести список слов.

      Если нужна именно подгрузка списка слов из файла, сообщите об этом тут http://sbfactory.ru/?p=1301 и возможно мы добавим такую возможность.

      С уважением к вам, Сергей.

  30. denis:

    для данного фильтра не слишком много 100-120 (стоп-слов)? и ещё никак не найду — вроде раньше был макрос для автоматического перевода текста (яндекс переводчиком), или ошибаюсь?

Написать комментарий

Вы должны войти чтобы добавить комментарий.

Последние статьи

css.php