Макрос GETMORECONTENT прописывается в шаблоне вывода. С помощью этого макроса можно парсить документы, части которых располагаются на разных url-адресах. Также можно задать неограниченное количество границ парсинга (прописав в параметр URL макрос [SELF] или CD_DOCURL! – ссылка на текущий документ, но теперь для этого есть динамические границы парсинга).
<GETMORECONTENT><URL="http://SBFactory.ru"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
Если прописать макрос с вышеуказанными параметрами, то он вернет
SBFactory - парсер контента, программа для наполнения интернет магазинов |
URL – адрес страницы, с которой будет парсится текст (только абсолютные ссылки). Если вместо ссылки задать [SELF], то контент будет браться с текущей страницы (с которой парсим);
START – начало парсинга (символ " экранируется фигурными скобками: {"} );
STARTCOUNT – номер тега начала парсинга (так же, как и для обычных границ парсинга);
END – конец парсинга (символ " экранируется фигурными скобками: {"} );
ENDCOUNT – номер тега конца парсинга (так же как и для обычных границ парсинга);
PARAMS – дополнительные параметры (htmtotxt – преобразовать html-код в текст, withgran – парсить вместе с границами, withfirstgran – парсить только с первой границей, tocsv – преобразовать текст в одну строку, koi – указать кодировку контента koi, utf-8 – указать кодировку контента utf-8, ansi – указать кодировку контента ansi, custom – указать пользовательскую кодировку (любую кодировку, настраивается в ctrl+8 -> вкладка “кодировки”), auto – АВТОМАТИЧЕСКИЙ ПОИСК ТЕКСТА СТАТЬИ В КОДЕ ДОКУМЕНТА, БЕЗ ЗАДАНИЯ START и END).
Макрос поддерживает вложенное выполнение другого макроса GETMORECONTENT (внутри себя)!
Как запускать GETMORECONTENT до выполнения большинства других макросов
Макрос GETMORECONTENT выполняется почти после всех других макросов. Если вам нужно выполнять его в самом начале, поместите оператор [1] сразу после <GETMORECONTENT>
<GETMORECONTENT>[1]<URL="... |
Если вы хотите передать в макрос произвольные HTTP-заголовки, то добавьте <HEADERS>HTTP-заголовки</HEADERS> в любое место ВНУТРИ макроса (заголовки разделяются переносом строки и вводятся в формате имя: значение):
<GETMORECONTENT><URL="http://SBFactory.ru"><HEADERS>имя 1: значение1 имя2: значение2 имя3: значение3</HEADERS><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
Если для отправки запроса требуется использовать библиотеку WIN, добавьте параметр [WINLIB] в конец URL-адреса:
<GETMORECONTENT><URL="http://SBFactory.ru[WINLIB]"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
Если для загрузки кода макросом GETMORECONTENT требуется использовать WBApp, то добавьте [WBAPPMODE] в конец параметра URL:
<GETMORECONTENT><URL="http://SBFactory.ru[WBAPPMODE]"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
А если требуется использовать WBApp с запуском нужного проекта, то действуйте примерно таким образом:
<GETMORECONTENT><URL="http://SBFactory.ru[WBAPPMODE(c:\12.wbapp)]"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
Где c:\12.wbapp – путь к нужному проекту WBApp.
Если есть несколько подряд-идущих макросов <GETMORECONTENT>, которые выполняют запрос к одному и тому же URL, то первый макрос загрузит код WEB-документа, а остальные возьмут код из кеша. Чтобы отключить кеширование кода, вставьте оператор [NOCACHE] в параметр URL:
<GETMORECONTENT><URL="[NOCACHE]http://SBFactory.ru[WBAPPMODE(c:\12.wbapp)]"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
В макросе GETMORECONTENT по умолчанию используются GET-запросы. Если вам нужно использовать POST-запросы, добавьте оператор [POST] в конец параметра URL:
<GETMORECONTENT><URL="http://SBFactory.ru[POST]"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
А если нужно передать POST-data, то вместо оператора [POST] используйте конструкцию [POST]POST-data[/POST]:
<GETMORECONTENT><URL="http://SBFactory.ru[POST]p=600[/POST]"><START="<title>"><STARTCOUNT="0"><END="</title>"><ENDCOUNT="0"><PARAMS="htmtotxt,tocsv"></GETMORECONTENT> |
Пример использования макроса шаблона вывода GETMORECONTENT с параметром [SELF] (парсим с той же страницы, например, для задания неограниченного количества границ парсинга):
Пример использования макроса шаблона вывода GETMORECONTENT для парсинга данных с другого url-адреса (отличного от того, с которого парсим):
PS:
– Если макрос GETMORECONTENT вызывается несколько раз ПОДРЯД к одному и тому же адресу, то произойдет один запрос (для остальных будет загрузка кода WEB-документа из кеша);
– Если не задать параметры START и END, то в результате работы макроса будет будет весь код WEB-документа;
– Для подгрузки “цикличных” данных используйте макрос [GETMORECYCLECONTENT].
А как можно добавить PHP_SCRIPT внутрь GETMORECONTENT?
<URL="data=/”>… не хочет работать.
Необходимо забрать часть контента по другому урлу, который можно получить используя текущий + одну из границ парсинга. Заранее спасибо.
Код примера обрезало, но сама проблема, думаю, понятна.
Помогите разобраться, как задать границы парсинга с разных url
Пример:
<URL="http://market.yandex.ru/model-spec.xml?modelid=2545982&hid=91259“><START="”><END="”>
в таком случае ссылка постоянная и инфа будет одна и также.
Здравствуйте, делайте примерно так:
Где CD_GRAN_1! (только в скобках >) – это ID товара, для него нужно будет задать границы…
А если мне надо в границу с <table class=“b-properties“>
что делать тогда?
<START="<table class=“b-properties“>”>
Задавать именно так как вы показали. Разве не работает?
у меня не работало
Скиньте пожалуйста файл проекта со ссылками (меню – файл – сохранить проект) на sbfroot@gmail.com или на форум. Я посмотрю и придумаю решение. Спасибо!
Есть возможность использовать в качестве Url повторяющуюся границу? Например так:
<URL="">
парсер съедает все теги, в общем можно ли написать вот так: URL=CD_CYCLE_GRAN_1!
Есть, пропишите в настройки повторяющихся границ (на панели инструментов) макрос GETMORECONTENT
Здравствуйте.
Пожалуйста, посмотрите скрин во вложении. Там с кодами вопросы, а то сюда не пропускает их.
Я имел ввиду, что верхний код не работает.
Я отдельный его фрагмент, который с REPLACE – работает отлично.
Теперь всё работает.
Спасибо за исправления!!!
Можно ли с помощью этого макроса спарсить видео с Youtbe?
И расскажите подробнее про возможноти этого макроса. Если можто, то мануальчик не помешает…
Можно, постараюсь на днях выложить пример.
А вот допустим у меня 4000 URL.
Задача такая парсер должен зайти на страницу и вытащить нужный мне урл.
Выводить должно так.
Исходный URL ; URL который вытащил парсер из исходного URL.(то что я указал содрать парсеру)
Как это сделать подскажите плиз.
А если в границах есть ковычки?
Ничего страшного, должно работать!
ничего не понятно.
пример видео можно сделать?
Привет, а можно ли как то к SELF добавлять часть урла пробовал та “SELF/tbs/#comment” ничего не парсит а ссылку эту не нашел как еще можно сформировать
Здравствуйте.
Возможность добавления к [SELF] будет доступна со следующей версии.
А можно пример, как задать более 20 границ парсинга, а то че-то не совсем понятно из описания. Если можно то на примере вот этой страницы http://www.just.ru/mobile_phones/189074_smartfon_samsung_wave_723_gt_s7230e_krasnii/, необходимо спарсить все характеристики
Добрый вечер
Честно говоря не очень понятно…
необходимо пару реальных примеров.. а лучше с видео.
По видео все сразу понятно.
Выложите пожалуйста видео, очень нужно, чтоб понять..как в точности задавать все нужные границы парсинга….+ откуда берутся ссылки страниц, или их вписывать вручную…и т.д.
Если не можите выложить видео, напишите пожалуйста пару примеров, но не одной строчки, а больше..
Спасибо
Добрый вечер!
Действительно, этот макрос расширяет возможности, но честно говоря, видео просто необходимо!
Спасибо.
Добавил видео, спасибо за полезные комментарии и просьбы!
Доброго времени суток!
Как мне правильно использовать [GETMORECYCLECONTENT] в шаблоне вывода, чтобы получить данные в примерно следующеем формате:
-Год 1
–месяц 1
–месяц 2
–месяц 3
-Год 2
–месяц 1
–месяц 2
и т.д.
Разобралась сама! Всем спасибо…
Доброй ночи, скажите пожалуйста, а как использовать данный макрос с DYNAMICVALUES?
Здравствуйте.
Вопросы по функционалу программы задаются на форуме http://forum.sbfactory.ru/
Спасибо!
А как вытянуть с удаленной URL 2 значения? Например ссылку и название ссылки, при том что их количество заведомо не известно, в отличии от обучающего видео.
Пробовал через [GETMORECYCLECONTENT], но он вытягивает только 1 значение последовательно, а в моем случае нужно:
вытянуть название ссылки 1 | вытянуть ссылку 1
вытянуть название ссылки 2 | вытянуть ссылку 2
…
вытянуть название ссылки n | вытянуть ссылку n
Здравствуйте.
Вопросы по функционалу программы задаются на форуме http://forum.sbfactory.ru/
Спасибо!