大家好,我是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格式的。这个大家自由发挥。
除此之外,大家可能注意到了我使用了代理,对,因为你懂得,需要访问国外网站才行。
自己挂上你的本地代理就行,如果这个你不知道怎么操作,可以加我微信咨询我。
最终一个自动发资源的机器人就诞生了,我们直接运行项目就能够实施完美的执行了。
好了,今天的文章就到这啦,非常感谢大家的支持!!!