1. ФОРУМ РАБОТАЕТ В РЕЖИМЕ ЧТЕНИЯ (ЗАКРЫТ ДЛЯ НОВЫХ ВОПРОСОВ)!

Макросы на вкладке "Ссылки"?

Тема в разделе "Общее", создана пользователем seva100, 5 апр 2018.

  1. seva100

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

    Регистрация:
    29 мар 2018
    Сообщения:
    8
    Работают ли макросы на вкладке "Ссылки"?
    Или как сгенерировать ссылки со страницы
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    (вверху календарик) с новостями за сегодня, вчера, позавчера и попозавчера?
    Заранее благодарен за ответы.
     
  2. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    218
    Добрый день.

    Точнее указывайте, что необходимо получить, желательно с примерами. Ссылки на новости? Ссылки на страницы с новостями?

    На вкладке ссылки действуют инструменты из блока "Парсинг и обработка"
    [​IMG]

    Генератор ссылок с датами:
    Код:
    https://www.kommersant.ru/archive/news/20{key2}-{key}-{num}
    Диапазон от 1 до 31
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    17
    18
    [​IMG]
     
    Root нравится это.
  3. gans

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

    Регистрация:
    21 апр 2014
    Сообщения:
    258
    xLime нравится это.
  4. seva100

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

    Регистрация:
    29 мар 2018
    Сообщения:
    8
    Прошу простить за неполноту высказанной мысли.
    Создаю проект, который в автоматическом режиме будет запускаться через планировщик путем запуска CD с параметрами командной строки.
    Задача - собрать новости за последние 3-4 дня с сайта
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Т.е. CD будет запускаться не каждый день (выходные, праздники и т.п.), а собрать нужно все новости и ни одной не пропустить. Механизм пропуска уже загруженных ссылок позволит избежать повторов.
    Но как не пропустить ни одной новости? Как в автоматическом режиме получить (сгенерировать) ссылки на страницы со списком новостей за сегодня, вчера, позавчера, попозавчера и т.п.?
    Далее подразумевается обработка этого списка вкладкой "Ссылки", которая пройдет по ним и соберет ссылки на страницы с самими новостями.
     
  5. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    218
    Создайте 2 файла:
    все_ссылки.txt
    текущие_ссылки.txt

    Путь к файлу 'текущие_ссылки.txt' добавляете в инструмент 'Автоматизация' (ctrl+shift+u).
    [​IMG]

    Проект сохраняете на вкладке "Ссылки".
    Перед запуском проекта .cdp, копируете (вырезаете ctrl+x) вручную ссылки из файла 'все_ссылки.txt' в файл 'текущие_ссылки.txt'. Программа загрузит ссылки из файла и начнет парсинг: сначала из вкладки "ссылки", а затем во вкладке "контент".
    Не забудьте включить функцию "AUTO" в блоке "Парсинг и обработка".
    [​IMG]

    ____
    Так же вы можете использовать php скрипты и инструмент автоматизации ctrl+u. Я вижу это так:
    Два файла с ссылками. Настраиваем задание, которое запускает php-скрипт - он ежедневно копирует по одной ссылке в файл 'текущие_ссылки.txt' и удаляет скопированную строку из 'все_ссылки.txt'.
    После парсинга запускается еще один скрипт, который очищает файл 'текущие_ссылки.txt'.
     
    Root и Kreol нравится это.
  6. seva100

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

    Регистрация:
    29 мар 2018
    Сообщения:
    8
    Как я понял, механизм макросов на вкладке "Ссылки" не работает и задача "в лоб" не решается. И придется использовать внешние инструменты.
    Отразил мысль в теме "Пожелания по улучшению программы".
    Благодарствую за ответы.
     
  7. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    218
    Операции с датами это целая отдельная тема. Нельзя просто так взять и прибавить +1 к дате. Обычно сначала дата переводится в число, выполняется операция, а затем переводится обратно.
    В CD для этого есть макросы:
    Код:
    [DATETOINT(0)][/DATETOINT]
    [CD_DATE(now|0|{DD}.{MM}.{YYYY} {HH}:{NN}:{SS})]
    Вы также можете настроить 2 проекта. Один будет собирать ссылки на вкладке "Контент" и использовать какие хотите макросы для этого, другой парсить сам контент.
    С помощью [SAVETOFILE] сохраняете в файл текущую дату например, а следующим запуском достаете ее оттуда и перезаписываете.
     
    seva100 и Root нравится это.
  8. seva100

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

    Регистрация:
    29 мар 2018
    Сообщения:
    8
    xLime, благодарствую. Это то, что нужно.
    Решение (может кому пригодится):
    Решается через создание двух проектов и выполнение их последовательно через планировщик. Прект-1 с помощью шаблона и механизма макросов на вкладке "Контент" генерирует ссылки и записывает их в файл project-2.link.txt
    Код:
    Текст шаблона:
    www.kommersant.ru/archive/news/[CD_DATE(now|0|{YYYY}-{MM}-{DD})]
    www.kommersant.ru/archive/news/[CD_DATE(now|-86400|{YYYY}-{MM}-{DD})]
    www.kommersant.ru/archive/news/[CD_DATE(now|-172800|{YYYY}-{MM}-{DD})]
    www.kommersant.ru/archive/news/[CD_DATE(now|-259200|{YYYY}-{MM}-{DD})]
    www.kommersant.ru/archive/news/[CD_DATE(now|-345600|{YYYY}-{MM}-{DD})]
    [DOCNAME]project-2.link.txt[/DOCNAME]
    
    Проект-2 перед парсингом загружает ссылки из файла project-2.link.txt и действует как обычный проект.
    Один нюанс. Проекту-1 надо подсунуть одну ссылку, что бы она начала обрабатываться на вкладке "Контент".
    Код:
    Я сделал так (возможно есть путь покороче):
    - создал файл project-1.link.txt
    - написал в нем www.kommersant.ru/
    - на вкладке "Контент" в инструменте загрузка ссылок из файлов перед парсингом указываю ссылку на файл project-1.link.txt
    - на вкладке "Ссылки" создаю фильтр для ссылок с регулярным выражением reg:htttps//:www.kommersant.ru/$ (который говорит отобрать ссылку "htttps//:www.kommersant.ru/" и значит одна будет только одна.)
    - на вкладке "Ссылки" прижимаю кнопку "AUTO" (передать полученные ссылки вкладке "Контент")
    
     
    Последнее редактирование: 7 апр 2018
    xLime и Root нравится это.

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