Парсер + бот в Telegram на Bot API
Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Нужно написать парсер, который будет парсить информацию с сайта, а затем при помощи бота в Telegram (через Bot Api) будет отсылать её подписчикам бота (доступ к боту по ключам и на определённое время).
Подробности в прикреплённом файле!
1. В идеале писать на PHP + MySQL для сервера на centos/debian и т.д. Но можно и как софт для Windows (с гарантией работы на Windows Server 2008 R2 или Windows Server 2012).
2. Программа должна не «забивать ОЗУ», то есть работать без утечек памяти. Работать без необходимости перезапуска ОС и самого скрипта/программы неделями и месяцами.
3. Нужна возможность изменять тексты технических сообщений, изменять вручную срок окончания подписок у пользователей по ключам, добавлять новые ключи (массово) и удалять/переносить в активированные уже добавленные ключи.
4. Нужна возможность самому написать сообщение, которое будет отправлено ботами.
5. Между появлением новой карточки на сайте и отправкой сигнала ботами должно быть несколько секунд (чем меньше времени тем лучше).
6. Нужна поддержка прокси и смены user-agent для парсера.
Указывайте, пожалуйста, примерные сроки и стоимость!
Подать заявку к этому проекту могут все, независимо от тарифного плана.
Telegram-клиент на PHP (и получение сообщений с помощью MadelineProto)
Решив заняться бессовестным копипастом (а точнее его автоматизацией) постов с чужого Telegram-канала в свой, я первым делом полез в документацию по телеграм-ботам. Но как выяснилось, боты не только не имеют методов для получения сообщений, их просто-напросто нельзя добавить в чужой канал.
Решение нужно было на PHP и следующий час был потрачен на его поиск. Удивительно, как об этом мало информации (хотя нет, не удивительно… кто вообще пишет такое на PHP. ). В общем, дорога со StackOverflow привела к MadelineProto. На библиотеку довольно мало ссылок в сети.
Что такое Madeline? Это Telegram-клиент на PHP, предоставляющий методы для работы как от имени пользователя, так и от имени бота. Цель статьи — в первую очередь сократить путь поиска Madeline и привлечь к нему внимание. Также интересно узнать у хабравчан что есть подобное на других ЯП?
Ну и разумеется, опубликовать для примера кусочек кода, который решил мою задачу:
//Подключение Madeline с гитхаба if (!file_exists(__DIR__ . '/madeline.php')) < copy('https://phar.madelineproto.xyz/madeline.php', __DIR__ . '/madeline.php'); >include __DIR__ . '/madeline.php'; $MadelineProto = new \danog\MadelineProto\API('session.madeline'); $MadelineProto->start(); $me = $MadelineProto->get_self(); \danog\MadelineProto\Logger::log($me); /* Получим историю сообщений */ $messages = $MadelineProto->messages->getHistory([ /* Название канала, без @ */ 'peer' => 'chatname', 'offset_id' => 0, 'offset_date' => 0, 'add_offset' => 0, 'limit' => 20, 'max_id' => 9999999, /* ID сообщения, с которого начинаем поиск */ 'min_id' => $lastid, ]); /* Сообщения, сортировка по дате (новые сверху) */ $messages = $messages['messages']; foreach(array_reverse($messages) as $i => $message)< /* Шлем сообщение на свой канал */ $MadelineProto->messages->sendMessage([ 'peer' => 'mychatname', 'message' => $message['message'] ]); >
UPD от mopkob: У проекта есть активное комьюнити: рускоязычное @pwrtelegramgroupru и интернациональное @pwrtelegramgroup.
Method: messages.sendMedia
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of Updates will be returned instead.
Usage of parse_mode:
Set parse_mode to html to enable HTML parsing of the message.
Set parse_mode to Markdown to enable markdown parsing of the message.
The following tags are currently supported:
br>a newline b>i>bold works ok, internal tags are strippedi> b> strong>boldstrong> em>italicem> i>italici> u>underlineu> s>strikethroughs> del>strikethroughdel> strike>strikethroughstrike> code>inline fixed-width codecode> pre>pre-formatted fixed-width code blockpre> blockquote>pre-formatted fixed-width code blockblockquote> a href="https://github.com">URLa> a href="mention:@danogentili">Mention by usernamea> a href="mention:186785362">Mention by user ida> a href="tg://user?id=186785362">Mention by user ida> Custom emoji: emoji id="5368324170671202286">emoji> Custom emoji: tg-emoji emoji-id="5368324170671202286">tg-emoji> pre language="json">Pre tags can have a language attributepre> spoiler>Spoilerspoiler> tg-spoiler>Spoilertg-spoiler>
You can also use normal markdown (bot API MarkdownV2 syntax), note that to create mentions you can also use the mention: syntax like in html:
*bold \*text* _italic \*text_ __underline__ ~strikethrough~ ||spoiler|| *bold _italic bold ~italic bold strikethrough ||italic bold strikethrough spoiler||~ __underline italic bold___ bold* [inline URL](http://www.example.com/) [inline mention of a user](tg://user?id=123456789)  \`inline fixed-width code\` \`\`\` pre-formatted fixed-width code block \`\`\` \`\`\`php pre-formatted fixed-width code block written in the PHP programming language \`\`\` [Mention by username](mention:@danogentili) [Mention by user id](mention:186785362) [Mention by user id](tg://user?id=186785362) [](emoji:5368324170671202286) [](tg://emoji?id=5368324170671202286)
Вопросы с меткой [telegram]
Telegram — кроссплатформенный мессенджер, сфокусированный на безопасности. Используйте эту метку для вопросов по взаимодействию с Telegram, включая использование официального API.
2,406 вопросов
Конкурсные
Неотвеченные
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
20 показов
Что делать если команда в телеграм была задана в группе, а бот отвечает в личных сообщениях? Telebot
bot = telebot.TeleBot(‘token’) #1 @bot.message_handler(content_types=[‘text’]) def get_text_messages(message): if message.text == «Привет»: bot.send_message(message.from_user.id, .
3k показов
Работа с методом ReplyKeyboardHide. Ошибка AttributeError
На данный момент у меня есть задача показать клавиатуру телеграм бота, а потом — после нажатия кнопки «/stop» — убрать ее. Я написал такой код: @bot.message_handler(commands=[«start»]) def start(.
2k показов
Как подключить в telegram боте на Python время?
Как подключить в telegram боте на Python время? Если к примеру я хочу чтобы человек писал «Сколько сейчас время?», то бот отвечал сколько сейчас время по МСК.
Как создать анимацию галочки как в телеграмме при очистке кэша?
Можно ли пример создания такой анимации, чтобы была градиентовая галочка и от неё звёзды исходили? Ну или подскажите как достать её исходники, если это gif. Искал похожее, но так и не нашел
Телеграм бот на C# отвечает одному в зависимости от другого пользователя
У меня есть такая проблема Есть бот, который принимает картинки и текст поочерёдно То есть, если ему отправить картинку, он попросит отправить текст и наоборот, если ему отправить сначала картинку, а .
16 показов
Получение данных платежа telebot
Настраиваю интеграцию платежей Telegram в YooKassa. С формированием платежей и их оплатой проблем нет, а вот с их обработкой — есть вопросы. Использую PyTelegramBotAPI. Формирование счета и отправка .
2k показов
Как занести сохранить в переменную текст который ввел пользователь telebot
срочно нужна помощь, пыталась сама, ничего не получилось. Нужно чтобы после нажатия на определенную кнопку бот предлагал пользователю ввести сообщение, а затем сохраняет ее в переменную. (Библиотека .
333 показа
Рецепты ifttt, или что нужно для связи Гугл таблицы с Гугл календарем
Всем привет. Задача у меня такая. При заполнении формы в Гугл, создаётся строка в Гугл таблице. Каким способом можно эту информацию из таблицы, а именно новую дату, автоматически закинуть в Гугл .
35 показов
Данные из txt. В telegram
У меня есть программа которая хранит свой журнал в txt файле. Через удаленку не удобно каждый раз заходит и смотреть. Хотел бы узнать возможно ли так, что бы данные из txt файла приходили сразу мне не .
12 показов
Как доработать скрипт python для отправки сообщения в телеграмм с картинкой?
Как правильно будет доработать скрипт, чтобы при отправке сообщения аккаунт пользователя отправлял картинку с текстом? Нужно именно отправлять от личного аккаунта, а не через бота. На данный момент .
29 показов
Как занести нажатие кнопки и ее текст в переменную для дальнейшего использования?
Нужно занести нажатие кнопки по определению пола в переменную для дальнейшего использования. Но когда пытаюсь определить callback_data кнопок в callback_query и вывести ответ для пользователя, пишет в .
15 показов
Телеграм бот (aiogram) не принимает другие сообщения при выполнении on_startup
Почему-то при использовании функции on_startup бот не реагирует на сообщения пользователя. Прикладываю код: import asyncio from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from .
1k показов
Ошибка с markup == types.KeyboardsMarkup(resize_keyboard=True) при создании бота
Создаваю свеого первого бота в телеграмме через пайтон. Решил добавить inline keyboard, но код перестал работать и выдает ошибку: markup == types.KeyboardsMarkup(resize_keyboard=True) ^ SyntaxError: .
Помогите пожалуйста переделать скрипт для Telegram Bot на aiogram
Уважаемые коллеги, здесь мне уже помогали переделать вот этот скрипт, который работал строго с aiogram==2.25.1, а нам нужно было чтобы он работал с aiogram3. Вот изначальный код: #!/usr/local/bin/.
802 показа
Как сделать рассылку пользователям бота в телеграмм PHP
Есть бот, при авторизации он сохраняет юзер айди человека в базу, как реализовать рассылку по пользователям бота?