Макрос шаблона вывода GETMORECONTENT (для задания границ парсинга с разных url)


Макрос 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>

Content Downloader (GETMORECONTENT)


Пример использования макроса шаблона вывода GETMORECONTENT с параметром [SELF] (парсим с той же страницы, например, для задания неограниченного количества границ парсинга):

Пример использования макроса шаблона вывода GETMORECONTENT для парсинга данных с другого url-адреса (отличного от того, с которого парсим):

PS:
– Если макрос GETMORECONTENT вызывается несколько раз ПОДРЯД к одному и тому же адресу, то произойдет один запрос (для остальных будет загрузка кода WEB-документа из кеша);
– Если не задать параметры START и END, то в результате работы макроса будет будет весь код WEB-документа;
– Для подгрузки “цикличных” данных используйте макрос [GETMORECYCLECONTENT].

1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 22, средний балл: 4.82)
Loading...
Автор: admin, 24 June 2011
Рубрики: Парсинг
Tags: , ,
Есть 32 коммент. к сообщению: “Макрос шаблона вывода GETMORECONTENT (для задания границ парсинга с разных url)”
  1. olezhan says:

    А как можно добавить PHP_SCRIPT внутрь GETMORECONTENT?

    <URL="data=/”>… не хочет работать.

    Необходимо забрать часть контента по другому урлу, который можно получить используя текущий + одну из границ парсинга. Заранее спасибо.

  2. boss says:

    Помогите разобраться, как задать границы парсинга с разных url
    Пример:
    <URL="http://market.yandex.ru/model-spec.xml?modelid=2545982&hid=91259“><START="”><END="”>

    в таком случае ссылка постоянная и инфа будет одна и также.

    • admin says:

      Здравствуйте, делайте примерно так:

      1
      
      URL="http://market.yandex.ru/model-spec.xml?modelid=CD_GRAN_1!"

      Где CD_GRAN_1! (только в скобках >) – это ID товара, для него нужно будет задать границы…

  3. magnat_8 says:

    А если мне надо в границу с <table class=b-properties>

    что делать тогда?

    <START="<table class=b-properties>”>

  4. Константин says:

    Есть возможность использовать в качестве Url повторяющуюся границу? Например так: <URL="">

    • Константин says:

      парсер съедает все теги, в общем можно ли написать вот так: URL=CD_CYCLE_GRAN_1!

    • admin says:

      Есть, пропишите в настройки повторяющихся границ (на панели инструментов) макрос GETMORECONTENT

  5. Макс says:

    Здравствуйте.
    Пожалуйста, посмотрите скрин во вложении. Там с кодами вопросы, а то сюда не пропускает их.

    • Макс says:

      Я имел ввиду, что верхний код не работает.
      Я отдельный его фрагмент, который с REPLACE – работает отлично.

    • Макс says:

      Теперь всё работает.
      Спасибо за исправления!!!

  6. Игореха says:

    Можно ли с помощью этого макроса спарсить видео с Youtbe?
    И расскажите подробнее про возможноти этого макроса. Если можто, то мануальчик не помешает…

  7. Павел says:

    А вот допустим у меня 4000 URL.
    Задача такая парсер должен зайти на страницу и вытащить нужный мне урл.

    Выводить должно так.

    Исходный URL ; URL который вытащил парсер из исходного URL.(то что я указал содрать парсеру)

    Как это сделать подскажите плиз.

  8. алексей says:

    А если в границах есть ковычки?

  9. Anonymous says:

    ничего не понятно.
    пример видео можно сделать?

  10. Anonymous says:

    Привет, а можно ли как то к SELF добавлять часть урла пробовал та “SELF/tbs/#comment” ничего не парсит а ссылку эту не нашел как еще можно сформировать

    • admin says:

      Здравствуйте.
      Возможность добавления к [SELF] будет доступна со следующей версии.

  11. Тимофей says:

    А можно пример, как задать более 20 границ парсинга, а то че-то не совсем понятно из описания. Если можно то на примере вот этой страницы http://www.just.ru/mobile_phones/189074_smartfon_samsung_wave_723_gt_s7230e_krasnii/, необходимо спарсить все характеристики

  12. Iurii says:

    Добрый вечер
    Честно говоря не очень понятно…
    необходимо пару реальных примеров.. а лучше с видео.
    По видео все сразу понятно.
    Выложите пожалуйста видео, очень нужно, чтоб понять..как в точности задавать все нужные границы парсинга….+ откуда берутся ссылки страниц, или их вписывать вручную…и т.д.
    Если не можите выложить видео, напишите пожалуйста пару примеров, но не одной строчки, а больше..
    Спасибо

  13. Алексей says:

    Добрый вечер!

    Действительно, этот макрос расширяет возможности, но честно говоря, видео просто необходимо!

    Спасибо.

  14. admin says:

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

  15. Бука says:

    Доброго времени суток!
    Как мне правильно использовать [GETMORECYCLECONTENT] в шаблоне вывода, чтобы получить данные в примерно следующеем формате:
    -Год 1
    –месяц 1
    –месяц 2
    –месяц 3
    -Год 2
    –месяц 1
    –месяц 2
    и т.д.

  16. Илья says:

    Доброй ночи, скажите пожалуйста, а как использовать данный макрос с DYNAMICVALUES?

  17. Дима says:

    А как вытянуть с удаленной URL 2 значения? Например ссылку и название ссылки, при том что их количество заведомо не известно, в отличии от обучающего видео.

    Пробовал через [GETMORECYCLECONTENT], но он вытягивает только 1 значение последовательно, а в моем случае нужно:
    вытянуть название ссылки 1 | вытянуть ссылку 1
    вытянуть название ссылки 2 | вытянуть ссылку 2

    вытянуть название ссылки n | вытянуть ссылку n

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

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

css.php