Как сделать, чтобы работало GETMORECONTENT в повторяющихся границах?

Тема в разделе "Решение различных задач по парсингу", создана пользователем dansokolov, 28 ноя 2012.

  1. dansokolov

    dansokolov New Member Пользователи

    Регистрация:
    31 июл 2011
    Сообщения:
    12
    Добрый день!
    Помогите, пожалуйста, решить задачку

    Как сделать, чтобы работало GETMORECONTENT в повторяющихся границах?

    Есть урл в шаблоне повтор. границе 1.
    Во второй повтор. границе стоит GETMORECONTENT, в котором указан урл, получаемый из повтор. границы 1
    Код:
    <GETMORECONTENT><URL="<CD_CYCLE_GRAN_1!>"><START="aaa"><STARTCOUNT="1"><END="bbb"><ENDCOUNT="0"><PARAMS="tocsv"></GETMORECONTENT>
    
    и парсит он все время один и тот же текст, принадлежащей первому урлу из повтор. границы 1. Как сделать, чтобы парсилось все?
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вместо
    Код:
    <GETMORECONTENT><URL="<CD_CYCLE_GRAN_1!>"><START="aaa"><STARTCOUNT="1"><END="bbb"><ENDCOUNT="0"><PARAMS="tocsv"></GETMORECONTENT>
    
    Использовать
    Код:
    <GETMORECONTENT><URL="[VALUE]"><START="aaa"><STARTCOUNT="1"><END="bbb"><ENDCOUNT="0"><PARAMS="tocsv"></GETMORECONTENT>
    
    Где VALUE есть значение той повторяющейся границы, в которую вы прописываете макрос GETMORECONTENT
     
  3. dansokolov

    dansokolov New Member Пользователи

    Регистрация:
    31 июл 2011
    Сообщения:
    12
    Спасибо, Root!

    А вы не могли бы, если вам не сложно, привести пример поподробнее, а то я не могу синтаксис [VALUE] найти:eek:

    У меня в третьей повтор. границе
    Код:
    <PHP_SCRIPT=http://dansokolov.ru/tools/gs.php>data=[GRAN9]</PHP_SCRIPT>
    В четвертой я ставлю, как вы сказали:
    Код:
    <GETMORECONTENT><URL="[VALUE]"><START="aaa"><STARTCOUNT="1"><END="bbb"><ENDCOUNT="0"><PARAMS="tocsv"></GETMORECONTENT>
    или как? как указать, что это VALUE от третьей повтор. границы?

    И еще один вопрос: в настройках повтор. границах работает ли [IFNIL][ELSE]?
    Вот такое выражение будет работать?
    Код:
    <GETMORECONTENT><URL="[VALUE]"><START="[IFNIL]aaa[ELSE]ccc[/IFNIL]"><STARTCOUNT="1"><END="[IFNIL]bbb[ELSE]ddd[/IFNIL]"><ENDCOUNT="0"><PARAMS="tocsv"></GETMORECONTENT>
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Во-первых:
    PHP_SCRIPT выполняется после GETMORECONTENT (Ссылки недоступны для гостей), а вам, как я понял, нужно использовать его до GETMORECONTENT, верно?

    И второе, зачем вам использовать GETMORECONTENT в двух повторяющихся границах, в одной никак?

    PS: IFNIL тоже выполняется после GETMORECONTENT, если потребуется, могу добавить обработчик IFNIL в макрос GETMORECONTENT.
     
  5. dansokolov

    dansokolov New Member Пользователи

    Регистрация:
    31 июл 2011
    Сообщения:
    12
    Здравствуйте!
    да, нужно до
    если я ставлю что-либо еще в повтор. границу, где PHPSCRIPT - phpscript не работает, поэтому я вынес GETMORECONTENT в отдельную повтор. границу
    добавьте, пожалуйста, если не сложно.


    Root, спасибо большое за разъяснения!:)

    Я хотел решить такую задачу в один заход: взять урл, представляющий собой редирект на другую страницу, PHPSCRIPTом взять из HTML-кода страницы редиректа урл конечной страницы и GETMORECONTENTом забрать с конечной страницы текст. А поскольку конечные страницы принадлежат разным сайтам, то с помощью IFNIL ELSE я хотел перечислить границы парсинга текста на всех сайтах.


    Я правильно понимаю, что в один заход не получится?
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Прошу обратиться в ICQ 571-880-051. Спасибо!
     

Поделиться этой страницей