系列文章目录

基础:requests的基本使用:QQ机器人基础  传送门

pythonQQ机器人系列:使用requests实现QQ机器人聊天(0-2) 传送门

pythonQQ机器人系列:使用requests实现QQ机器人聊天(2-0)传送门


目录

系列文章目录

前言

一.源代码

二.源代码讲解

main源代码讲解

get源代码讲解

post源代码讲解(多群喊话)


前言

建议使用(2-0)的代码,比这个好用

此文章继承前面的文章,这次更新了本地词库的回答和多群回话,并且这个文章从新讲解源代码,为了大家更好的阅读不能像前面那样更新,都在一篇文章上,对看文章的人来说也并不友好,所以一篇文章咱们也就更新或优化二到三次,就会出下一篇文章,重新介绍。

最后谢谢大家的支持。

下载go-cqhttp。

找一个属于自己机器版本的下载即可,下载完后自行运行程序并加载好,360等可能会弹提示,这个是无毒的可以放心。

其他的是不需要改动的,改好后在运行一次go-cqhttp.bat就行了。

这个样就算是启动好了,当然有些可能开了设备锁,这个自行解决就可以了,有些时候扫码弄设备锁会弹链接,复制一下到浏览器打开扫一下就行了。

当然,大家也可能会遇到风控,当然风控是不会封号的,只是限制了你不能用框架了,把QQ号晾几天,水水群就行了。


一.源代码

这次,各个文件给分开进行编写,下面是文件的图示

下面分别是main,get,post文件的源代码

#main的源代码
import time
import BF2_API_getdef main_system(url,headers):while True:# 实例化example_get_mess_html = BF2_API_get.get_mess_html(url,headers)example_post_mess_html = BF2_API_get.get_mess_aggregate()example_answer_check = BF2_API_get.answer_check()example_answer_logic = BF2_API_get.answer_logic()example_post_mes = BF2_API_get.post_mes()# 新消息检查example_get_mess_html.res_get_html()self_qq_again = example_answer_check.answer_post_qq()if self_qq_again == self_qq:  # 对比QQ号验证是否有新消息print('>>>:' * 3 + '无消息')example_clear = BF2_API_get.list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素time.sleep(3)passelse:print('>>>:' * 3 + '新消息')# 调用API实现机器人回复#获取新消息mes_content = example_post_mess_html.separate_mes_html()#获取回答消息msg = example_answer_logic.get_API_answer(mes_content=mes_content)#进行提交回复消息post_msg = example_post_mes.post_mes_API(msg=msg, group_id=group_id)time.sleep(2)example_clear = BF2_API_get.list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素if msg == "接收消息中......":BF2_API_get.Pending_implementation().shouting()print('已退出.............')if __name__ == '__main__':res_mes_post = {"instruction_message": "message_seq","group_id": "736038975"}group_id = res_mes_post["group_id"]#自行修改QQ群号url = "http://127.0.0.1:5700/get_group_msg_history?group_id=" + group_idself_qq = 2712065523#qq机器人的QQheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}main_system(url=url, headers=headers)
#get源代码
import requests
import pandas as pd  # 准备实现本地词库
import BF2_API_post
import timepath = 'words\word.xlsx'  # 本地词库路径
message_append = []  # 添加获取的全部内容data_word = pd.read_excel(path)
word_question = data_word.loc[:, 'question']  # 读取question内容
word_answer = data_word.loc[:, 'answer']  # 读取answer内容
total = data_word.shape[0]  # data.shape可以获取行列的总数class get_mess_html():  # 获取网页的json并获取消息def __init__(self, url, headers):self.url = urlself.headers = headersdef res_get_html(self):  # 获取最新的消息数据res = requests.get(url=self.url, headers=self.headers).json()  # 获取数据jsonmes_list = res["data"]["messages"]  # 键值取值for res_get_mes in mes_list:  # 循环获取全部内容message_append.append(res_get_mes)return Noneclass get_mess_aggregate():  # 回答消息def separate_mes_html(self):mes_get_append = message_append[-1]  # 最新的消息记录mes_content = mes_get_append["message"]  # 拿取消息内容mes_content_sender = mes_get_append["sender"]["nickname"]  # 拿取消息发送者的名字print(">>>>>>>>>:获取:" + mes_content_sender + ':' + mes_content)  # 检查是否正常return mes_content
class answer_logic():def get_API_answer(self,mes_content):  # 本地词库一级回答# 回答消息的第一优先级# 放到前面提前处理num = 0for num in range(total):num = +num  # 前加的意思是先进行一次运行下一次再 +1answer_Pre_post = str(word_question[num])'''因为回答的消息在同行,所以后面也是num。因为xlsx里面的数字是int类型,我们获取的消息里面的数字是str所以要用str转化一下,这个漏洞我找了好久哭~~~~~。'''if mes_content == answer_Pre_post:msg = word_answer[num]return msg  # 弹出本地词库消息,便于下面发送else:passif mes_content == "菜单":  # 回答消息的第二优先级msg = "聊天\n多群喊话\n继续加油"#\n可以实现多行输出return msgelif mes_content == "多群喊话":#_API_post.Multi_group_shouting().Get_group_list()#_API_post.Multi_group_shouting().Shouting_realization(mes_content)#print('>>>:' * 3 +"已完成多群喊话 ")msg = '接收消息中......'return msgelse:  # 回答消息的第三优先级urls = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}".format(mes_content)answer_get = requests.get(url=urls).json()answer_content = answer_get["content"]  # 获取API回答的内容print('>>>:' * 3 + "回答:" + answer_content)  # 检察是否可以正常运行msg = answer_contentreturn msgclass post_mes():def post_mes_API(self, msg, group_id):  # 进行回复urls = "http://127.0.0.1:5700/send_group_msg?group_id=" + group_id + "&message=" + str(msg)answer_post_use = requests.post(url=urls).json()  # 发送消息print('>>>:' * 3 + "已回答")class answer_check():  # 检查消息是否刷新def answer_post_qq(self):  # 获取发送者的QQ号poster_qq = message_append[-1]["sender"]["user_id"]return poster_qq  # 对比自身QQ号class list_clear():def list_clears(self):  # 清除列表中的所有元素message_append.clear()return Noneclass Pending_implementation():#使用这个类实现各种功能的使用,相当于一个中转站def shouting(self):res_mes_post = {"instruction_message": "message_seq", "group_id": "736038975"}group_id = res_mes_post["group_id"]url = "http://127.0.0.1:5700/get_group_msg_history?group_id=" + group_idself_qq = 2712065523headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}group_id_list = []group_name_list = []while True:# 实例化example_get_mess_html = get_mess_html(url, headers)example_post_mess_html = get_mess_aggregate()example_answer_check = answer_check()example_answer_logic = answer_logic()example_post_mes = post_mes()# 新消息检查example_get_mess_html.res_get_html()self_qq_again = example_answer_check.answer_post_qq()if self_qq_again == self_qq:  # 对比QQ号验证是否有新消息print('>>>:' * 3 + '无消息')example_clear = list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素time.sleep(3)passelse:print('>>>:' * 3 + '新消息')# 调用API实现机器人回复# 获取新消息mes_content = example_post_mess_html.separate_mes_html()BF2_API_post.Multi_group_shouting().Get_group_list()BF2_API_post.Multi_group_shouting().Shouting_realization(mes_content)time.sleep(2)example_clear = list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素break
#post源代码
import requestsgroup_id_list = []
group_name_list = []class  Multi_group_shouting(): #实现多群喊话def Get_group_list(self):#获取群列表url = 'http://127.0.0.1:5700/get_group_list'res = requests.get(url=url).json()message_group_list = res['data']for list in message_group_list:#将群添加到集合中group_id = list['group_id']group_name = list['group_name']# print(list['group_id'],list['group_name'])group_id_list.append(group_id)group_name_list.append(group_name)print(group_name, group_id, '已添加')return Nonedef Shouting_realization(self,word):num = 0for list in group_id_list:url = 'http://127.0.0.1:5700/send_group_msg?group_id=' + str(list) + '&message=' + str(word)req = requests.post(url=url).textname_group = group_name_list[num]num = num + 1print(name_group, list, "已发送")return Noneif __name__ == '__main__':url = 'http://127.0.0.1:5700/get_group_list'word = str(input("ee:"))Multi_group_shouting().Get_group_list()Multi_group_shouting().Shouting_realization(word)

二.源代码讲解

main源代码讲解

我们此处只讲一个逻辑,便于下面的查看,后面再细讲。

import time
import BF2_API_getdef main_system(url,headers):while True:# 实例化example_get_mess_html = BF2_API_get.get_mess_html(url,headers)example_post_mess_html = BF2_API_get.get_mess_aggregate()example_answer_check = BF2_API_get.answer_check()example_answer_logic = BF2_API_get.answer_logic()example_post_mes = BF2_API_get.post_mes()# 新消息检查example_get_mess_html.res_get_html()self_qq_again = example_answer_check.answer_post_qq()if self_qq_again == self_qq:  # 对比QQ号验证是否有新消息print('>>>:' * 3 + '无消息')example_clear = BF2_API_get.list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素time.sleep(3)passelse:print('>>>:' * 3 + '新消息')# 调用API实现机器人回复#获取新消息mes_content = example_post_mess_html.separate_mes_html()#获取回答消息msg = example_answer_logic.get_API_answer(mes_content=mes_content)#进行提交回复消息post_msg = example_post_mes.post_mes_API(msg=msg, group_id=group_id)time.sleep(2)example_clear = BF2_API_get.list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素if msg == "接收消息中......":BF2_API_get.Pending_implementation().shouting()print('已退出.............')if __name__ == '__main__':res_mes_post = {"instruction_message": "message_seq","group_id": "736038975"}group_id = res_mes_post["group_id"]url = "http://127.0.0.1:5700/get_group_msg_history?group_id=" + group_idself_qq = 2712065523headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}main_system(url=url, headers=headers)

首先我们先实例化类(也就是给他们换个名字,把他们的名字变短一点),对于实现QQ群里面的回复,我们需要下面的几步操作。

一.获取最新的群消息

二.等待新消息

     1.新消息出现,先查找本地词库是否有这个词,如果没有,再对比设置的二级回复,,如果前面都没有,最后使用网上的聊天机器人进行回答

    2.回答完后提交给QQ,上传消息

三.重新循环

这就是大概的逻辑,我们也就会按照这个逻辑,进行程序的编写。

get源代码讲解

import requests
import pandas as pd  # 准备实现本地词库
import BF2_API_post
import time

正常的引入库,我们使用pandas这个库准备实现本地词库的回答,我们到讲post的时候讲pandas。

class get_mess_html():  # 获取网页的json并获取消息def __init__(self, url, headers):self.url = urlself.headers = headersdef res_get_html(self):  # 获取最新的消息数据res = requests.get(url=self.url, headers=self.headers).json()  # 获取数据jsonmes_list = res["data"]["messages"]  # 键值取值for res_get_mes in mes_list:  # 循环获取全部内容message_append.append(res_get_mes)return None

这部分的代码就是拿取群历史消息了,关于键值取值什么的前面讲了,也就不多说了,下面是图示,拿取所有的消息,并添加到列表中。

我们再通过下面的代码进一步提取信息,我们只需要最新的消息,所有直接索引最后一个消息集合,再通过键值取值的方法拿取发送者的名字与内容,最后将内容弹出,我们对名字不感兴趣。

class get_mess_aggregate():  # 回答消息def separate_mes_html(self):mes_get_append = message_append[-1]  # 最新的消息记录mes_content = mes_get_append["message"]  # 拿取消息内容mes_content_sender = mes_get_append["sender"]["nickname"]  # 拿取消息发送者的名字print(">>>>>>>>>:获取:" + mes_content_sender + ':' + mes_content)  # 检查是否正常return mes_content

下面是我们的逻辑回复的部分,因为我们要实现本地词库的回答,所以我就将本地词库的回答设置为一级回复(也就for循环是放在了if上面,return弹出后,后面的内容也就不再执行,如果没有弹出msg,就继续执行下面的内容,所以可以算一个一级回复) ,对于其他的回复也就放到了下面,我下面所写的二级回复,也就是“菜单”那个,说实话,也没多大用,还有消息可以用“\n”实现多行发送消息(下有图示),这里为什么多群喊话弹出的msg是“接收消息”,对于这个问题,到下面再说,或者去main源代码里的最下面看看,我没想出什么好招来实现多群喊话我好菜),对于最后的第三优先级回复我们就是使用的青客云的聊天机器人(下有图示)了,在咱还没训练出机器人之前,也只能用这种机器人了。

class answer_logic():def get_API_answer(self,mes_content):  # 本地词库一级回答# 回答消息的第一优先级# 放到前面提前处理num = 0for num in range(total):num = +num  # 前加的意思是先进行一次运行下一次再 +1answer_Pre_post = str(word_question[num])'''因为回答的消息在同行,所以后面也是num。因为xlsx里面的数字是int类型,我们获取的消息里面的数字是str所以要用str转化一下,这个漏洞我找了好久哭~~~~~。'''if mes_content == answer_Pre_post:msg = word_answer[num]return msg  # 弹出本地词库消息,便于下面发送else:passif mes_content == "菜单":  # 回答消息的第二优先级msg = "聊天\n多群喊话\n继续加油"#\n可以实现多行输出return msgelif mes_content == "多群喊话":#_API_post.Multi_group_shouting().Get_group_list()#_API_post.Multi_group_shouting().Shouting_realization(mes_content)#print('>>>:' * 3 +"已完成多群喊话 ")msg = '接收消息中......'return msgelse:  # 回答消息的第三优先级urls = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}".format(mes_content)answer_get = requests.get(url=urls).json()answer_content = answer_get["content"]  # 获取API回答的内容print('>>>:' * 3 + "回答:" + answer_content)  # 检察是否可以正常运行msg = answer_contentreturn msg

"\n"的使用

青客云聊天机器人

一级回复代码讲解

path = 'words\word.xlsx'  # 本地词库路径
data_word = pd.read_excel(path)
word_question = data_word.loc[:, 'question']  # 读取question内容
word_answer = data_word.loc[:, 'answer']  # 读取answer内容
total = data_word.shape[0]  # data.shape可以获取行列的总数num = 0
for num in range(total):num = +num  # 前加的意思是先进行一次运行下一次再 +1answer_Pre_post = str(word_question[num])'''因为回答的消息在同行,所以后面也是num。因为xlsx里面的数字是int类型,我们获取的消息里面的数字是str所以要用str转化一下,这个漏洞我找了好久哭~~~~~。'''if mes_content == answer_Pre_post:msg = word_answer[num]return msg  # 弹出本地词库消息,便于下面发送else:pass

上面的代码包含了整个get源代码上面那一块没有被放进类里面的代码以及回复逻辑类中的代码,为什么我把这两块代码分开了呢,因为我感觉如果回复消息的时候去运行前面的代码,浪费时间,所以就把他们丢到了外面,他们的值本来就是不变的所以先去运行他们后,应该可以节省时间。

path进行设置路径,后面用pandas进行读取文件,用data_word.loc[:, 'question'],可以读取整个question这一列,相应的data_word.loc[:, 'answer'],也可以读取整个answer这一列(下有图示)。

至于total = data_word.shape,可以获取数据的维度,下图所示

前面是行,后面是列,我们只需要行数,所以索引4就可以了。

话说,为什么我要用这个行呢?因为你的词库的遍历是有限的,要是无限的遍历,会出现你最喜欢的,红色的,error,error,error,所以知道害怕了吧(好像也就我会怕,我好菜)。

下面代码的num = +num意思是先运行一次后再加一,这就是后加(是后加吧?,还是前加,额~,算了不管了,反正不重要,懂了就行),通过这样一次一次的循环,遍历完所有的词。

额,至于我为什么要用str,answer_Pre_post = str(word_question[num]),你可以看见Excel中我弄了一个“666”,这玩意获取出来,是“int类型”,而“mes_content”又是“str类型”,所以就必须转化一下(话说,这玩意整了我好久才找出他来,这个bug真气死我了),下面也简单的让大家看一下他们的索引。

所以,因为所对应的回答在同一列,所以他们后面的索引也都是num,最后弹出msg就可以了,当然如果本地词库里面没有回复,他就继续往下运行了。

class post_mes():def post_mes_API(self, msg, group_id):  # 进行回复urls = "http://127.0.0.1:5700/send_group_msg?group_id=" + group_id + "&message=" + str(msg)answer_post_use = requests.post(url=urls).json()  # 发送消息print('>>>:' * 3 + "已回答")

这个类,就单纯的实现QQ消息的发送也并没有什么好讲的(你们应该都会,相信你们),如果不懂这个url的话,可以去看看我前面写的以及go-cqhttp这个。

class answer_check():  # 检查消息是否刷新def answer_post_qq(self):  # 获取发送者的QQ号poster_qq = message_append[-1]["sender"]["user_id"]return poster_qq  # 对比自身QQ号class list_clear():def list_clears(self):  # 清除列表中的所有元素message_append.clear()return None

这个两个类也就合起来讲了,这两个类也是很简单,第一个单纯在前面的列表中拿取最后一个消息中发送者的QQ号,然后把QQ号弹出。第二个,额,这个还需要讲???就把那个放内容的列表清空。

当然下面还有一块重头戏,我们现在先跳过去,因为下面那个是多群喊话这个功能实现的一个中转站我是比着我先写好的main源代码改的

post源代码讲解(多群喊话)

import requestsgroup_id_list = []
group_name_list = []class  Multi_group_shouting(): #实现多群喊话def Get_group_list(self):#获取群列表url = 'http://127.0.0.1:5700/get_group_list'res = requests.get(url=url).json()message_group_list = res['data']for list in message_group_list:#将群添加到集合中group_id = list['group_id']group_name = list['group_name']# print(list['group_id'],list['group_name'])group_id_list.append(group_id)group_name_list.append(group_name)print(group_name, group_id, '已添加')return Nonedef Shouting_realization(self,word):num = 0for list in group_id_list:url = 'http://127.0.0.1:5700/send_group_msg?group_id=' + str(list) + '&message=' + str(word)req = requests.post(url=url).textname_group = group_name_list[num]num = num + 1print(name_group, list, "已发送")return Noneif __name__ == '__main__':url = 'http://127.0.0.1:5700/get_group_list'word = str(input("ee:"))Multi_group_shouting().Get_group_list()Multi_group_shouting().Shouting_realization(word)

我们先在头顶上方上两个列表,一个存获取的群号,另一个存名字。再我们定义类,一个获取信息,另一个发送消息。对于我们的获取消息的类,也是不麻烦,通过键值取值的方法,拿取群号和群名,然后添加到列表中。发送消息的类,用切片的方法拿取列表中的群号与群名,当然url只需要群号,群名我们在输出中使用(就这么点破代码,还整了我好久的时间,我人麻了)。

main源代码以及get源代码的结尾

首先,main中的实例化类我们不在多讲,进行消息的检查,需要刷新页面也就是需要如下,通过下面进行刷新页面,以及拿取检查所需要的QQ号

# 新消息检查
example_get_mess_html.res_get_html()
self_qq_again = example_answer_check.answer_post_qq()

下面便是检查消息是否为新消息,通过对比自身的QQ号来判定,当然这样也是有缺陷的,不过对于现在的我们来说是最好的。

如果相等,就是没有消息,清除掉列表中的内容,重新循环。

如果不相等,就是有新消息。

#获取新消息
mes_content = example_post_mess_html.separate_mes_html()
#获取回答消息
msg = example_answer_logic.get_API_answer(mes_content=mes_content)
#进行提交回复消息
post_msg = example_post_mes.post_mes_API(msg=msg, group_id=group_id)time.sleep(2)example_clear = BF2_API_get.list_clear()
clear = example_clear.list_clears()  # 清除集合中的所有元素

这些就是正常的获取消息内容,把消息内容传递给逻辑回复的类,进行判断进行几级回复,然后提交回复内容,再清除列表中的内容。

if msg == "接收消息中......":BF2_API_get.Pending_implementation().shouting()print('已退出.............')

因为最上面我们已经引入过post源码了

import BF2_API_get

所以,我们调用get源码中的中转站的类,进行多群喊话的中转。

在这里解释一下,为什么要用中转,因为需要多群喊话,所以,就必须让代码捕捉到我们要喊话的内容,而单纯的我们上面的代码,是不具备捕捉喊话内容的功能的,所以我们就通过这个中转站实现捕捉内容,这个中转站的内容跟main源码差不多。

class Pending_implementation():#使用这个类实现各种功能的使用,相当于一个中转站def shouting(self):res_mes_post = {"instruction_message": "message_seq", "group_id": "736038975"}group_id = res_mes_post["group_id"]url = "http://127.0.0.1:5700/get_group_msg_history?group_id=" + group_idself_qq = 2712065523headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}group_id_list = []group_name_list = []while True:# 实例化example_get_mess_html = get_mess_html(url, headers)example_post_mess_html = get_mess_aggregate()example_answer_check = answer_check()example_answer_logic = answer_logic()example_post_mes = post_mes()# 新消息检查example_get_mess_html.res_get_html()self_qq_again = example_answer_check.answer_post_qq()if self_qq_again == self_qq:  # 对比QQ号验证是否有新消息print('>>>:' * 3 + '无消息')example_clear = list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素time.sleep(3)passelse:print('>>>:' * 3 + '新消息')# 调用API实现机器人回复# 获取新消息mes_content = example_post_mess_html.separate_mes_html()BF2_API_post.Multi_group_shouting().Get_group_list()BF2_API_post.Multi_group_shouting().Shouting_realization(mes_content)time.sleep(2)example_clear = list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素break

我们只说改动的部分

这是main源码的原来部分。

        if self_qq_again == self_qq:  # 对比QQ号验证是否有新消息print('>>>:' * 3 + '无消息')example_clear = BF2_API_get.list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素time.sleep(3)passelse:print('>>>:' * 3 + '新消息')# 调用API实现机器人回复#获取新消息mes_content = example_post_mess_html.separate_mes_html()#获取回答消息msg = example_answer_logic.get_API_answer(mes_content=mes_content)#进行提交回复消息post_msg = example_post_mes.post_mes_API(msg=msg, group_id=group_id)time.sleep(2)example_clear = BF2_API_get.list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素if msg == "接收消息中......":BF2_API_get.Pending_implementation().shouting()print('已退出.............')

这是中转站改动的部分。

            if self_qq_again == self_qq:  # 对比QQ号验证是否有新消息print('>>>:' * 3 + '无消息')example_clear = list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素time.sleep(3)passelse:print('>>>:' * 3 + '新消息')# 调用API实现机器人回复# 获取新消息mes_content = example_post_mess_html.separate_mes_html()BF2_API_post.Multi_group_shouting().Get_group_list()BF2_API_post.Multi_group_shouting().Shouting_realization(mes_content)time.sleep(2)example_clear = list_clear()clear = example_clear.list_clears()  # 清除集合中的所有元素break

我们把main源码中的获取回答消息与发送消息进行了去除,然后把我们写好的喊话的函数放进去,因为我们的获取消息的函数还在,所以就会等待新的消息,这个新的消息会被放入我们写好的喊话功能中去,这样就会实现我们想要的喊话功能,如果没有新消息就会一直在这里监听,不过,任何新消息都会被当成喊话的内容,到最后,喊话完后,就会跳出这个中转站函数的循环,进入到我们写好的主程序循环中去(累死了,想睡觉)。

制作不易,希望大家喜欢。下面的时间我会进行优化,暂时不会更新,毕竟代码写的太杂乱了,得让代码好康,又好用。如有不懂的地方,我会解答的,当然也希望听听大佬的意见。

pythonQQ机器人系列:使用requests实现QQ机器人聊天(1-0)相关推荐

  1. ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模

    ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. 2. ...

  2. 第十代晨风机器人_第十代QQ机器人下载_第十代QQ机器人 v20180102 官方版 - 西西下载...

    官方介绍: 第十代QQ机器人是对QQ进行功能扩展的程序,在第十代机器人软件登录QQ号码后可以按照预先设定的一些指令自动完成某些任务,例如与好友进行交流,执行一些数据交互任务,实现QQ与网站的交互,常用 ...

  3. 晨风机器人安卓版_晨风qq机器人

    手机qq自动聊天机器人,晨风qq机器人手机版发布了,目前仅有导入自动回复.自动启用网络词库.支持群聊.私聊.群临时会话等简单功能,实现了与qq好友聊天以及qq群消息.qq群私聊的自动提取,自动回复,除 ...

  4. pythonQQ机器人系列(基于go-cqhttp):使用requests和socket实现QQ机器人聊天(2-0)

    系列文章目录 基础:requests的基本使用:QQ机器人基础  传送门 pythonQQ机器人系列:使用requests实现QQ机器人聊天(0-2) 传送门 pythonQQ机器人系列:使用requ ...

  5. Ubuntu16.04安装QQ机器人

    Ubuntu安装QQ机器人 看了看现在QQ机器人似乎只有酷Q机器人有Docker可以在linux上运行了 那就k开始装酷Q机器人,资源占用也不是很大,大概占用180M内存吧 安装酷Q HTTP 首先安 ...

  6. 2023最新可用QQ机器人框架整理

    排名无先后顺序,不定时更新,欢迎留言补充 1.qy机器人 官网:www.qvbot.com 稳定.高效.免费的QQ机器人框架.支持多种语言二次开发可现实群管.聊天.便民服务等多种功能.功能更强大,无限 ...

  7. 一个基于MFC的QQ机器人框架

    GitHub项目地址:https://github.com/HarmoniaLeo/MFC-QQbot 0x00 这是什么? 欢迎使用本QQ机器人开发框架(如果有人会用的话).本框架是主要使用MFC中 ...

  8. PHP开发基于Mirai的QQ机器人

    博客和更新地址:PHP开发基于Mirai的QQ机器人 前言 在完成配置开源安卓QQ协议库Mirai后,便可使用已有开源项目来部署自己的QQ机器人,但自行开发显然更符合需求.借助mirai-api-ht ...

  9. E-puck2机器人系列教程

    E-puck2机器人系列教程 目录 1.E-puck2机器人系列教程-1.开关机 2.E-puck2机器人系列教程-2.LED代表的含义 3.E-puck2机器人系列教程-3.USB调试 4.E-pu ...

最新文章

  1. P5952-[POI2018]水箱【最小生成树】
  2. java编译系统资源不足_Ant编译项目资源不足
  3. 15个顶级多线程面试题及答案
  4. 有关Oracle cvu和cvuqdisk
  5. 台式电脑显示器黑屏但灯亮_显示器黑屏无信号 但电脑一直在运行的原因和解决办法...
  6. 【LaTeX】 案例分析 (8) - 高等数学分析 Mathematica 实验报告
  7. DeBank和非小号网站的数据分析-实习工作小结
  8. 买到Windows新电脑必做的6个优化设置(强烈建议)
  9. flask中jinjia2的学习
  10. gc方法写法_国际上电话的正确写法和拨打方法
  11. oracle 11g sga_target=0,Oracle 11g sga_target 参数设置(转)
  12. Python的学习笔记案例8--空气质量指数计算9.0
  13. CentOS 5/6/7使用摘记
  14. 每日一例,练就编程高手
  15. 联想笔记本突然没声音了,但是音量却是打开得,F1亮着
  16. 如何设计一个聊天机器人?谈谈聊天机器人技术栈
  17. 如何通过接口获取商品详情
  18. 企业会计准则(具体准则)第4号——固定资产
  19. 字节跳动测试岗面试跪在二面,我复盘总结了失败原因,决定再战一次
  20. 一个网工获得CCNP认证后的成功求职记

热门文章

  1. 计算机领域中的CAE,什么是CAE?
  2. 图的无权最短路径算法
  3. leetcode276周赛记录(待补充)
  4. SQL查询------模糊查询
  5. 按分类搜索淘宝直播接口API,淘宝直播API接口
  6. Python如何使用国内源下载模块
  7. maven中hibernate-core和struts2-core中javassist解决办法(cannot be cast to javassist.util.proxy.Proxy)
  8. 探索学习:网红容器引擎Docker
  9. Windows ubuntu子系统 Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
  10. Jekins安装和部署