1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Уведомления в Telegram из A-Parser

Тема в разделе "Делимся опытом", создана пользователем Support, 15 мар 2018.

  1. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    В данной статье будет рассказано о том, как отправлять сообщения из А-Парсера себе в Телеграм, а также показано 2 примера использования данного способа на практике.

    Подготовка
    Сначала нужно создать Telegram бота. В интернете о том как это сделать есть очень много статей, поэтому я расскажу о данной процедуре вкратце.
    [​IMG]
    1. Ищем в Telegram "отца всех ботов" @BotFather
    2. Отправляем ему команду /newbot и следуем дальнейшим инструкциям: задаем отображаемое имя и юзернейм бота
    3. После создания бота BotFather пришлет его токен - сохраняем (записываем, запоминаем...) его вместе с юзернеймом, который мы задали на 2-м шаге
    Бот готов.
    Теперь создаем группу в Телеграме.
    1. Открываем Меню - Создать группу
    2. Приглашаем в группу ранее созданного бота, введя в строку поиска его юзернейм. Также обязательно добавляем специального бота, который в будущем выдаст нам ID группы: @myidbot
    3. Называем группу любым удобным именем
    Теперь наша группа готова. Сюда будут приходить уведомления от созданного бота.

    Для отправки сообщений в данный чат, нужен его ID. В его получении нам поможет IDBot, которого мы ранее добавили в группу. Отправляем ему команду /getgroupid и получаем нужный ID, который также сохраняем. После этого IDBot можно удалить из группы.

    На этом работа с Telegram закончена.
    Теперь перейдем к А-Парсеру.
    [​IMG]
    1. Импортируем пресет из каталога: https://a-parser.com/resources/271/
    2. Вписываем полученные ранее токен (вместо {YOUR_TOKEN}) и ID (вместо {CHAT_ID})
    3. Тестируем: если все было сделано правильно, то после запуска пресета в ранее созданную группу должно прийти сообщение. Если же что-то пойдет не так, то в файл результата выведется сообщение об ошибке.
    4. Если тест успешен - сохраняем пресет
    Теперь у нас есть готовая система для отправки сообщений из A-Parser в Telegram.

    Примеры использования
    Уведомление об окончании работы задания

    А-Парсер может обрабатывать различные проекты, некоторые могут работать по несколько часов, а то и дней. Следить за тем, когда же завершится то или иное задание не очень удобно, поэтому настроим уведомление об окончании в Телеграм.
    Для этого воспользуемся функционалом Цепочки заданий. В задании, завершение которого нужно отследить, укажем в пункте Запустить по завершению ранее сохраненный пресет.
    [​IMG]
    Теперь можно запускать основное задание. По его окончанию запустится пресет, отправляющий уведомление и вы сразу узнаете о завершении работы основного задания, получив заранее сохраненное сообщение, например такое:
    [​IMG]

    Периодическое получение данных
    Аналогичным способом можно периодически получать необходимые данные прямо в Telegram. Для примера возьмем получение позиций сайта a-parser.com по нескольким ключевым словам.
    1. Создаем пресет, который будет парсить позиции:
      [​IMG]
    2. В поле Запустить по завершению указываем пресет, который отправляет уведомления. Но теперь включаем опцию Использовать файл результатов для запросов:
      [​IMG]
    3. Запускаем созданный пресет. Если все сделано правильно, то в телеграм прийдет сообщение с результатом основного пресета:
      [​IMG]
    4. Теперь воспользуемся Планировщиком и настроим периодическое выполнение созданного пресета. Например вот так (каждый день в 8:45):
      [​IMG]
    Теперь каждое утро к чашечке утреннего кофе и новостям нас будет ждать в Телеграме сводка по позициям сайта ;)
     
    ДенисЕрофеев, uomi, Gerero и 7 другим нравится это.
  2. sergeda

    sergeda A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    22 май 2013
    Сообщения:
    193
    Симпатии:
    23
    @Support
    А можно такое же сделать для заданий, в которых может быть очень много результатов? Чтоб результаты разбивались пачками, скажем по 100 строк и отправлялись на Телеграм?
     
  3. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Можно. Формируйте в основном задании результат таким образом, чтобы в файле результата в каждой строке было по 100 подстрок. Подобный подход описан выше в примере "Периодическое получение данных".
    Вот пример шаблона (по 100 ссылок в сообщении):
    Код:
    [% FOREACH item IN p1.serp;
        count = count + 1;
        separator = count mod 100 ? '%0A' : "\n";
        item.link _ separator;
    END %]
    Рекомендую запускать задание, которое отправляет сообщения, в 1 поток, чтобы не нарушать очередность. Примерно вот так:
    [​IMG]

    P.S. Хотя не совсем понятно, зачем отправлять себе в Телеграм весь результат, если его очень много...
     
  4. sergeda

    sergeda A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    22 май 2013
    Сообщения:
    193
    Симпатии:
    23
    @Support
    Не совсем то, чего хотелось бы. Вот если у нас есть задача которая может идти очень долго и она периодически пишет результат. И нужно этот результат отправлять в Телеграм не дожидаясь завершения всего задания так как важна оперативность получения. Как-то это можно сделать?
     
  5. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Как вариант - JS парсер, который будет парсить то что вам нужно и отправлять результаты по ходу выполнения в Телеграм
     
    sergeda нравится это.
  6. Nikky

    Nikky A-Parser Pro License
    A-Parser Pro

    Регистрация:
    29 апр 2016
    Сообщения:
    16
    Симпатии:
    0
    а можно каким то образом так отправить изображение или видео?
     
  7. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Можно, используя api методы телеграма sendPhoto или sendVideo (https://core.telegram.org/bots/api)
    Но для реализации нужной логики наверное лучше использовать JS парсеры.
     
  8. -Alexx-

    -Alexx- A-Parser Pro License
    A-Parser Pro

    Регистрация:
    11 мар 2019
    Сообщения:
    18
    Симпатии:
    1
    добрый день. я использую пресет парсинга Яндекс Новостей https://a-parser.com/threads/2777/ и попробовал настроить чтобы результат парсинага отправлялся в Телеграм. Все сделал по инструкции, но сообщения в чат не попадают. Подскажите, пожалуйста, возможно ли использование комбинации парсинга новостей с телеграм-ботом или я просто в чем-то ошибся и по этому не посылаются сообщения?
     
  9. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Конечно возможно, вы можете отправлять любые сообщения в группу. Скорее всего где-то допускаете ошибку. Попробуйте сначала протестировать пресет отправки сообщений. Если с ним все в порядке, тогда тестируйте с парсингом новостей. Обращайте внимание на сообщения в ответе от API телеграма, там как правило пишется в чем проблема.
     
  10. -Alexx-

    -Alexx- A-Parser Pro License
    A-Parser Pro

    Регистрация:
    11 мар 2019
    Сообщения:
    18
    Симпатии:
    1
    да, все в порядке, нашел свою ошибку
     
    Support нравится это.
  11. muxa

    muxa A-Parser Pro License
    A-Parser Pro

    Регистрация:
    5 мар 2019
    Сообщения:
    3
    Симпатии:
    0
    А возможно ли отправлять в телеграм сообщение только при определенном результате парсинга?

    Например, парсим наличие товара на сайте. Если "нет в наличии", то не отправляем по завершении. Если "в наличии", то отправляем.
     
  12. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Можно.
    Если следовать описанной в статье логике, то формируйте итоговый файл 1-го пресета так, чтобы в результате были сообщения только о товарах, которые "в наличии" (т.е. фильтруйте по наличию).
     
  13. ДенисЕрофеев

    ДенисЕрофеев A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    29 фев 2016
    Сообщения:
    18
    Симпатии:
    3
    Было бы круто увидеть пример с отправкой именно файла результатов в телегу.
     
    jasonborn и creck нравится это.
  14. jkvoka

    jkvoka A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 июл 2019
    Сообщения:
    4
    Симпатии:
    0
    Подскажите, как отправлять одно сообщение, если контент берем из текстового файла построчно? 1 строка= 1 сообщение
     
  15. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    После обсуждения в чате выяснились подробности задачи:
    Возможное решение:
     
  16. admiralmarkets

    admiralmarkets A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    20 апр 2023
    Сообщения:
    1
    Симпатии:
    0
    скажите, а как реализовать отправику уведомлений только для тех запросов, позиции которых изменились? И чтобы он показывал на сколько и стркелочку "вврх-вниз"?

    например:
    купить a-parser: 30 ⬆️ - 10

    ну или просто позиция ключа "купить a-parser" повысилась с 30 до 10.
     
  17. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Это реализуется с помощью JS парсера и написания соответствующей логики с хранением предыдущих результатов в БД.
     

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