我开发了个自动发布资源的电报机器人!

2022-04-20 08:26:19 浏览数 (1)

大家好,我是kuls。

又有几天不见,上段时间建了一个电报群,有一部分小伙伴已经加进去了。

这个电报群主要做的是分享一些技术资源 程序员。

如果你不知道电报是啥,你可以加我微信私聊。

好了,回到正题。

当时想着如何让爬虫帮我去爬取一些资源,然后自动分享到电报群里呢?

当然爬虫爬取资源这个过程我就不详细讲了,你可以去找一些资源非常丰富的网站,然后对它进行爬取。爬取完成之后,对信息进行格式化,然后发送到群组里。

这篇文章的重点是来讲讲如何把资源发送到电报群。

其实电报这个app很火就是因为它的扩展性很强!

给我们提供了非常非常多的api接口。

其实我们这里也不需要去写太复杂的机器人,因为我们的需求就是将资源链接发送到指定的群组即可。当然除了这种功能,我们还可以去发送群管理机器人来对群组进行管理。如果点赞多,我们下次讲。

ok,那么我们第一步该怎么做呢?

我们首先搜索 @BotFather

然后在对话框里输入 /start

再输入 /newbot

自己写一个名字:

大家注意一定要以bot结尾哦~

如果你创建成功的话,会提示如下:

创建完毕后,我们就会有一个HTTP API,就是在我打码的地方。

这个东西非常有用!

我们新建一个群后,把我们创建的机器人拉进群中。

然后我们打开浏览器,访问:https://api.telegram.org/bot< YourBOTToken >/getUpdates

其中< YourBOTToken >这个填写的就是上面所给的HTTP API。

打开网页之后,我们会发现有个chat.id,这个就是我们需要的群组的id值,这个得看清楚是不是你的群组哦。

拿到了群组id就好办了。

这里开始,我们就得写代码了,这里我把所有代码粘出来:

代码语言:javascript复制
import json
from urllib import request
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
def sendmsg(sendtext):
    data = {
        "chat_id": "你的群组id",
        "parse_mode": "HTML",
        "disable_web_page_preview": "true",
        "text": str(sendtext)
    }
    data1 = json.dumps(data).encode(encoding='utf-8')
    url = 'https://api.telegram.org/bot你的API密钥/sendMessage'

    headers = {"Content-Type": "application/json"}
    proxies = {
        'https': 'https://127.0.0.1:1087', 
        'http': 'http://127.0.0.1:1087'
    }

    opener = request.build_opener(request.ProxyHandler(proxies))
    request.install_opener(opener)
    req = request.Request(url=url, headers=headers, data=data1)
    response = request.urlopen(req)

    print(response.read().decode())

其实大家可以发现这就是一个requests中的post请求。

对,没错。

我们只需要向该api中发送相应字段就可以发送消息至群组中了。

但是这里也有很多注意的点。

大家可以看到请求参数中有"parse_mode": "HTML",这也就是说电报是支持多种形式的信息的。也支持MD格式的。这个大家自由发挥。

除此之外,大家可能注意到了我使用了代理,对,因为你懂得,需要访问国外网站才行。

自己挂上你的本地代理就行,如果这个你不知道怎么操作,可以加我微信咨询我。

最终一个自动发资源的机器人就诞生了,我们直接运行项目就能够实施完美的执行了。

好了,今天的文章就到这啦,非常感谢大家的支持!!!

0 人点赞