Использование макроса [GETURLSBYANCHORS] внутри макроса [APPENDDOCSOURCE]

Тема в разделе "Макросы шаблона вывода", создана пользователем kadishev1997, 15 апр 2020.

  1. kadishev1997

    kadishev1997 Well-Known Member Пользователи

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Доброго дня!

    Такая ситуация: мне необходимо собрать контактные данные с сайтов поставщиков.
    Имеются входные данные (это сами сайты, главные страницы)

    С помощью [GETURLSBYANCHORS] собираю ссылки контактов по ключевому слову
    Код:
    [GETURLSBYANCHORS(контакт[NODUP])][DOCSOURCE][/GETURLSBYANCHORS]
    Окей, ссылки на контакты имеются. Их нужно подгрузить в код страницы, для дальнейшей настройки границ парсинга.

    Использую <GETMORECONTENT> и [APPENDDOCSOURCE]

    Код:
    [APPENDDOCSOURCE]<GETMORECONTENT><URL="[SELF]"><START=""><STARTCOUNT="0"><END=""><ENDCOUNT="0"><PARAMS="">[GETURLSBYANCHORS(контакт[NODUP])][DOCSOURCE][/GETURLSBYANCHORS]</GETMORECONTENT>[/APPENDDOCSOURCE]
    Но при таком коде, данные попросту не подтягиваются. Максимум это несколько строк какого-то описания, которые закрываются тегами </p>

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

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Добавил обработчик макроса [GETURLSBYANCHORS] в макрос [APPENDDOCSOURCE].

    Замените файл Content Downloader.exe (в папке с программой) этим файлом:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 87 постов.**
     
    kadishev1997 нравится это.
  3. kadishev1997

    kadishev1997 Well-Known Member Пользователи

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Заменил файл, потестировал, немного не так работает.

    Он подгружает одну и ту же страницу дважды (с которой парсятся значения), а нужно, чтобы он подгружал контент из макроса [GETURLSBYANCHORS]

    Другими словами, если я правильно понял, нужно заменить местами обработку действий пункта 5 и 6 на фото, чтобы он сначала брал нужную ссылку (с которой брать данные), а затем подставлял [DOCSOURCE] с собранной ссылки
    upload_2020-4-16_15-29-40.png
     
  4. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Сначала [GETURLSBYANCHORS] берет ссылки из [DOCSOURCE], затем срабатывает GETMORECONTENT. Что и нужно.

    Если поменять местами 5 и 6 функцию, откуда брать будет [GETURLSBYANCHORS] данные? Если [DOCSOURCE] не вставился. Не понимаю вашу логику.
     
  5. kadishev1997

    kadishev1997 Well-Known Member Пользователи

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Сначала идет обработка site.ru . С него берется [GETURLSBYANCHORS] и обрабатывается - например site.ru/page . C этого [GETURLSBYANCHORS] (site.ru/page) берется GETMORECONTENT и добавляется в [APPENDDOCSOURCE]. Логика да, имеется, только данные с [DOCSOURCE] тянутся с site.ru , а нужно с site.ru/page , и получается что один и тот же код обрабатывается дважды.

    По крайней мере это понимаю так я, т.к. допустим тех же заголовков h1 должно быть 2: с главной страницы site.ru и с дополнительной site.ru/page

    Возможно, нужен немного другой шаблон вывода для моей цели и я его использую неправильно.

    Дополнительно приложил проект, но думаю все и так понятно
     

    Вложения:

  6. kadishev1997

    kadishev1997 Well-Known Member Пользователи

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Потестировал функционал, так и так у меня к сожалению не выходит(((

    Второй день голову ломаю, не знаю как собрать код внутри ссылки, которая фильтруются через [GETURLSBYANCHORS]

    Может как вариант дополнить макросом, который будет брать данные из ссылки [GETURLSBYANCHORS] (site.ru/page) и добавлять их в результат парсинга? Что-то типа GETURLDOCSOURCE , и уже добавлять к результату парсинга?
     

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