请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
电视联盟 首页 行业新闻 查看内容

七爪源码:使用 Python 和 Telegram 创建机器人

2022-11-17 09:23| 发布者: 尘埃416| 查看: 364| 评论: 0

摘要: 像 Telegram 这样的消息传递应用程序提供 API 以便我们创建机器人的情况并不少见。 这种类型的机器人很容易编写,而且用途广泛。 机器人是与在您的家庭服务器上运行的应用程序进行交互的好方法,无需将其直接暴露在 ...

像 Telegram 这样的消息传递应用程序提供 API 以便我们创建机器人的情况并不少见。 这种类型的机器人很容易编写,而且用途广泛。 机器人是与在您的家庭服务器上运行的应用程序进行交互的好方法,无需将其直接暴露在互联网上。


观察网站上的变化

最近我要申请签证,要预约你需要去政府网站,不断检查是否有新的名额。 而且您需要快速,因为免费位置不会持续很长时间。

所以我决定编写一个机器人,它每 10 分钟浏览一次表单,并在状态发生变化时立即在 Telegram 上向我发送一条消息。 bot 有两部分,第一部分是与 selenium webdriver 交互的代码,第二部分是通过 Telegram 提醒变化。

首先,下载一个浏览器驱动:


七爪源码:使用 Python 和 Telegram 创建机器人

然后我使用了一个名为 Splinter 的库,它抽象了与驱动程序的交互。

from splinter import Browserwith Browser() as browser:    # Visit URL.    browser.visit("http://www.google.com")    # Find and fill out the search form.    browser.find_by_name('q').fill('splinter')    # Find and click the 'search' button.    button = browser.find_by_name('btnK').click()    # Check for result on the page.    if browser.is_text_present('splinter.readthedocs.io'):        print("Yes, the official website was found!")    else:        print("No, it wasn't found...")

要运行代码,首先启动您在第一步下载的驱动程序,然后运行 python 应用程序。


使用电报发送警报

现在我们有了一个在网站上查找更改的脚本,我们需要一种发送通知的方法。 要创建 Telegram 机器人,首先您需要一个令牌,并且只需向 BotFather 索取令牌即可。


七爪源码:使用 Python 和 Telegram 创建机器人

向机器人发送命令 /newbot,机器人会要求您为机器人命名,然后它会为您提供令牌。

在这里,我将 python-telegram-bot 库包装在一个类中,以便在需要时更容易更改为另一个解决方案,但您可以跳过此并直接使用该库。

import telegramclass Telegram:    def __init__(self, token: str):        self.bot = telegram.Bot(token=token)        self.offset = 0    def send(self, chat_id, message):        self.bot.send_message(chat_id=chat_id, text=message)


找出chat_id

  1. 将 Telegram BOT 添加到组中。
  2. 获取 BOT 的更新列表:
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates

例子:

https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates

3. 寻找“聊天”对象:

{  "update_id": 8393,  "message": {    "message_id": 3,    "from": {      "id":7474,      "first_name":"AAA"    },    "chat": {      "id":<CHAT_ID>,      "title":""    },    "date":25497,    "new_chat_participant": {      "id":71,      "first_name":"NAME",      "username":"YOUR_BOT_NAME"    }  }}


与您的树莓派项目交互

由于您可以使用机器人发送消息,因此您也可以接收消息。 这为您的周末项目打开了广泛的可能性。 使用电报作为与您的应用程序通信的桥梁,您无需将它们直接公开到互联网,或处理端口转发和 IP 更改,或动态 DNS 配置。

不久前,我写了一个小机器人,它听命令 /lotto。机器人然后回复一个随机生成的彩票号码。 所以我让机器人在一个 docker 容器上运行,我可以用我的手机与它进行交互。


结论

编写机器人很有趣,你可以用它做各种各样的事情。 这里我以 Telegram 为例,但过去我也使用 Slack bot API 与房屋报警系统进行交互。 我希望这能提供信息,如果您构建了一个很酷的机器人,请与我分享。

关注七爪网,获取更多APP/小程序/网站源码资源!


路过

雷人

握手

鲜花

鸡蛋