Макрос шаблона вывода 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 (внутри себя)!


Если вы хотите передать в макрос произвольные 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>


Если для загрузки кода макросом 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 по умолчанию используются 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 (оценок: 16, средний балл: 4,75)
Загрузка...
Автор: admin, 24 июня 2011
Рубрики: Парсинг
Метки: , ,
32 комментария к сообщению: “Макрос шаблона вывода GETMORECONTENT (для задания границ парсинга с разных url)”
  1. olezhan:

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

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

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

  2. boss:

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

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

    • admin:

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

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

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

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

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

    <START="<table class=«b-properties«>»>

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

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

  5. Макс:

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

  6. Игореха:

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

  7. Павел:

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

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

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

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

  8. алексей:

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

  9. Аноним:

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

  10. Аноним:

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

  11. Тимофей:

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

  12. Iurii:

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

  13. Алексей:

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

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

    Спасибо.

  14. admin:

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

  15. Бука:

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

  16. Илья:

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

  17. Дима:

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

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

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

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

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

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

css.php