我自己的机器人开源项目

go-cqhttp下载地址

import requests
import time
import pymysql.cursors
import bs4
import os#-------------------------------------------
conn = pymysql.connect(host='localhost',  # MySQL服务器地址user='root',  # MySQL服务器端口号password='123456',  # 用户名charset='utf8',  # 密码port=3306,  # 端口db='sg',  # 数据库名称
)cur = conn.cursor()
#-------------------------------------------message_id_collect = [] #放入获取的消息ID以便进行判断是否有人说话
message_id_collect_again = [] #放入获取的消息ID以便进行判断是否有人说话
message_append = [] #添加获取的全部内容class res_mess_html(): #获取网页的jsondef __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: #循环获取全部内容#res_get = res_get_mes.replace(r'')message_append.append(res_get_mes)#print(message_append)return Noneclass res_mess_post(): #回答消息def res_separate_mes(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_contentdef API_get_answer(self,mes_content):  # 聊天API的调用,并获取回答if mes_content == "涩图": #回答消息的第一优先级o=requests.get(url="https://api.lolicon.app/setu/v2",headers=headers).json()xinxi=o['data'][0] #json信息zuoping=xinxi['title'] #作品名字zuozhe=xinxi['author'] #作者oo=o["data"][-1]["urls"]['original']msg="[CQ:image,file={0}]    作品名字:{1}     作者:{2}".format(oo,zuoping,zuozhe)
#=========================================================新闻爬虫=========================================================elif mes_content == "新闻":paqu=requests.get("https://top.baidu.com/board?tab=realtime")content = paqu.text.encode('utf-8')soup = bs4.BeautifulSoup(content, 'lxml')pp=soup.find_all(class_="c-single-text-ellipsis")xinwen_list=[]for i in pp:xinwen_list.append(i.text)ppp=str(xinwen_list)pppp=ppp.replace( ',', '-----')ppppp=pppp.replace("'",'')msg=ppppp#======================================================名字引擎============================================================elif  mes_content[0:2] == "mz":mz=mes_content[2:]sql0 = "SELECT * FROM shuju0 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']list_xinxi=[]cur.execute(sql0, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql2 = "SELECT * FROM shuju2 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql2, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql3 = "SELECT * FROM shuju3 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql3, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql4 = "SELECT * FROM shuju4 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql4, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql5 = "SELECT * FROM shuju5 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql5, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql6 = "SELECT * FROM shuju6 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql6, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql7 = "SELECT * FROM shuju7 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql7, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql8 = "SELECT * FROM shuju8 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql8, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql9 = "SELECT * FROM shuju9 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql9, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql10 = "SELECT * FROM shuju10 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql10, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql11 = "SELECT * FROM shuju11 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql11, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql12 = "SELECT * FROM shuju12 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql12, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息sql13 = "SELECT * FROM shuju13 WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(sql13, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息guanxiwang1 = "SELECT * FROM guanxiwang WHERE mingzi1 LIKE %s;"params = ['%' + mz + '%']cur.execute(guanxiwang1, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息guanxiwang2 = "SELECT * FROM guanxiwang WHERE mingzi2 LIKE %s;"params = ['%' + mz + '%']cur.execute(guanxiwang2, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息guanxiwang3 = "SELECT * FROM guanxiwang WHERE mingzi3 LIKE %s;"params = ['%' + mz + '%']cur.execute(guanxiwang3, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息qinshi = "SELECT * FROM qinshi WHERE mingzi LIKE %s;"params = ['%' + mz + '%']cur.execute(qinshi, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本list_xinxi.append(xinxi_jiaru)#加入信息msg=str(list_xinxi)#====================================================寝室=================================================================elif  mes_content[0:2] == "qs":list_xinxi=[]qs=mes_content[2:]qinshi = "SELECT * FROM qinshi WHERE qinshi LIKE %s;"params = ['%' + qs + '%']cur.execute(qinshi, params)rest = cur.fetchall()xinxi_jiaru=str(rest) #元组转化为文本msg=xinxi_jiaru#=====================================================图片名字============================================================elif  mes_content[0:2] == "tp":mztp=mes_content[2:]path = 'file:///D:/tp/'o = mztp + ".jpg"path1 = os.path.join(path, o)msg="[CQ:image,file={0}]名字:{1}".format(path1,mztp)#======================================================名字引擎============================================================            else: #回答消息的第二优先级urls = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}".format(mes_content)answer_get = requests.get(url=urls, headers=headers).json()answer_content = answer_get["content"]  # 获取API回答的内容print(">>>>>>>:回答:" + answer_content)  # 检察是否可以正常运行msg = answer_contentreturn msgdef post_url(self,msg): #进行回复group_id = res_mes_post["group_id"]  # 群号urls = "http://127.0.0.1:5700/send_group_msg?group_id=" + group_id + "&message=" + msganswer_post_use = requests.post(url=urls, headers=headers).json()  # 发送消息print(">>>>>>>:已回答")
class answer_check():def answer_post_again(self):  # 发消息前的消息IDres_get_first = message_append[-1]res_mes_id = res_get_first["message_id"]message_id_collect.append(res_mes_id)nums = message_id_collect[-1]# print(nums)return nums  # 返回nums以便进行对比def answer_post_again_check(self):  # 发消息后的消息IDres_get_again = message_append[-2]res_mes_id_again = res_get_again["message_id"]message_id_collect_again.append(res_mes_id_again)numss = message_id_collect_again[-1]# print(numss)return numss  # 返回nums以便进行对比class list_clear():def list_clears(self):  # 清除列表中的所有元素message_append.clear()message_id_collect.clear()message_id_collect_again.clear()def get_F(url,headers):while True:# 实例化类res_post_mes = res_mess_html(url=url, headers=headers)res_mess_posts = res_mess_post()# 调用API实现机器人回复mes_content = res_mess_posts.res_separate_mes()msg = res_mess_posts.API_get_answer(mes_content=mes_content)return msg
def get_post(url,headers):while True:#实例化类res_post_mes = res_mess_html(url=url, headers=headers)res_mess_posts = res_mess_post()res_answer_check = answer_check()#获取发消息前的消息IDres_post_mes.res_get_html()n = res_answer_check.answer_post_again()#调用API实现机器人回复mes_content = res_mess_posts.res_separate_mes()msg = res_mess_posts.API_get_answer(mes_content=mes_content)post = res_mess_posts.post_url(msg=msg)#刷新页面准备循环拿取消息IDres_post_mes.res_get_html()time.sleep(1)while True:#循环获取最新消息的IDres_post_mes.res_get_html()m = res_answer_check.answer_post_again_check()time.sleep(1)# print(message_id_collect_again)if n == m: #比对消息ID验证是否有新消息  #print(">>>>>>>:无消息")s = list_clear()s.list_clears()#清除列表中的所有元素time.sleep(3)# print(message_append,message_id_collect,mes_content)passelse:#print(">>>>>>>:有消息")s= list_clear()s.list_clears()# print(message_append, message_id_collect, mes_content)break
if __name__ == '__main__':res_mes_post = {"instruction_message": "message_seq", "group_id": "579086236", "message_id": ""}message_group_id = res_mes_post["group_id"]url = "http://127.0.0.1:5700/get_group_msg_history?group_id=" + message_group_idheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}get_post(url=url,headers=headers)conn.close()

Python-go-cqhttp原理和代码相关推荐

  1. python 相关性分析原理及代码详细介绍

    一.相关性分析简介 相关性分析(correlation analysis)是指对两个或多个具备相关关系的变量进行线性相关分析,从而衡量变量间的相关程度或密切程度.相关性程度即为相关性系数R,R的取值范 ...

  2. python:最小二乘法拟合原理及代码实现

    这里写目录标题 原理 代码实现 原理 最小二乘法适用于对处理的一堆数据,不必精确的经过每一点,而是根据图像到每个数据点的距离和最小确定函数.需要注意的是,最小二乘是对全局进行拟合优化,对噪声比较敏感, ...

  3. 奇异值分解SVD数学原理及代码(Python)

    奇异值分解SVD数学原理及代码(Python) 首先简单介绍一下什么是正交矩阵(酉矩阵) 如果 或 其中,E为单位矩阵,或,则n阶实矩阵A称为正交矩阵.正交矩阵是实数特殊化的酉矩阵,因此总是属于正规矩 ...

  4. 灰度共生矩阵的原理及代码实现(python)

    灰度共生矩阵的原理及代码实现(python) 1原理: 灰度共生矩阵(Gray Level Co-occurrence Matrix,GLCM)统计了灰度图中像素间的灰度值分布规律以区分不同的纹理.灰 ...

  5. Python OpenCV 图像匹配(Brute-Force与FLANN)的原理与代码实现

    先导文章:SIFT特征提取 Python OpenCV SIFT特征提取的原理与代码实现_乔卿的博客-CSDN博客如果对图像扩大规模,如缩放,如下图所示,那么原本的角点在变换后的某些窗口中可能就不是角 ...

  6. 《Python智能优化算法:从原理到代码实现与应用》出版啦

    <Python智能优化算法:从原理到代码实现与应用> 各位亲爱的小伙伴,让各位久等了.我们撰写的<Python智能优化算法:从原理到代码实现与应用>由电子工业出版社出版了. 本 ...

  7. python遍历queryset_Django QuerySet查询集原理及代码实例

    一 概念 Django的ORM中存在查询集的概念. 查询集,也称查询结果集.QuerySet,表示从数据库中获取的对象集合. 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): a ...

  8. 【python】psnr原理简介及代码实现

    写在前面 psnr作为图像质量评价指标,在很多图像领域如图像超分辨率.图像压缩.图像去噪等都有广泛的应用. PSNR(峰值信噪比) 简介 Peak signal-to-noise ratio(简称PS ...

  9. 用Python实现KNN算法(从原理到代码的实现)

    用Python实现KNN算法(从原理到代码的实现) 环境 1.Pycharm 2.python3.6 声明:本栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅 ...

  10. 硬核!Python 四种变量的代码对象和反汇编分析

    作者 | 大奎 整理 | 阳哥 来源丨Python数据之道 在Python基础的学习过程中,对变量和参数的理解有助于我们从更基础层面了解Python语言的运行.在这个过程中,还是有不少冷门和细节的地方 ...

最新文章

  1. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(编写自定义函数添加均值、标准偏差)实战
  2. Bootstrap UI 编辑器
  3. 士兵杀敌(二)(线段树+树状数组)
  4. php引用下级目录文件夹,使用PHP遍历文件夹与子目录的函数代码
  5. 解读:云原生下的可观察性发展方向
  6. OSGI-flex-blazeds通信
  7. Python使用xlwt和xlrd读写excel文件
  8. Mysql 导出 sql的执行结果到 csv文件
  9. ByteBufferMessageSet分析
  10. 学习之法 —— 套路
  11. php mysql简单分页代码_用php制作简单分页(从数据库读取记录)的方法详解
  12. 多项式ln,exp学习小计
  13. 2022-2027年中国石油装备制造市场竞争态势及行业投资前景预测报告
  14. 数模学习(七)--- 多元线性回归
  15. 某技术总监认为处女座码农要重用,并给出3点原因,你认同么?
  16. ln x的matlab表示,ln在matlab中怎么表示
  17. Linux文件系统层级结构图和vim中三个模式的命令
  18. Kotlin Symbol Processing(KSP)使用初体验
  19. 服务器系统c盘在哪个文件夹,windows操作系统放在哪个文件夹下
  20. 大端模式和小端模式的判别!

热门文章

  1. 看看SRI的“可穿戴机器人”:能让人跑得更快、负重更多的可穿戴技术(视频)
  2. 高仿电视墙服务器系统结构,【准确区分电视墙服务器的真品与赝品】PjTime.COM电视墙服务器 选购常识...
  3. JS里面String转int,相互转换
  4. 计算机串口3f8波特率设置,串口波特率转换的实现-硬件方式
  5. 介绍一款 MRICT 图像预处理强大工具--FSL
  6. java编程10以内随机数字乘除_随机生成10个长度为10以内的字符串并排序(Java入门第三季集合下作...
  7. centos 安装 es7
  8. 汨罗计算机培训,汨罗高人气的培训计算机学校-学费贵不贵
  9. 每天有三四个小时空闲时间,做什么兼职赚钱比较好?
  10. 微机 —— 可编程定时器/计数器 8253/8254