QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!


目录

  • 前言
  • 具体实现
    • 1、爆照
    • 2、生日书
    • 3、获取歌词和分享音乐
  • 完整项目下载地址

前言 完整项目包括框架、代码和详细使用说明可以去链接下载:
QQ机器人基础版(文章1-2所有功能)
多功能版(文章1-3所有功能,含点歌,随机美女照片等等功能)
下载完只需要按照使用说明修改几处地方即可搭建成功!!
第一篇文章:QQ机器人详细制作教程(从配置到简单的功能)
第二篇文章:搭建一个QQ机器人陪女朋友聊天并叫她起床
前两篇文章都上了CSDN的综合热榜,首先得感谢官方的推荐,其次更需要感谢的是小伙伴们的支持!我会继续努力的!也期待大家对本文的一键三连哦。QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

本篇文章增加了机器人的功能,主要是通过一些调用好玩的接口来实现的,下面上一些截图:
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

要实现以上功能都是在第一篇文章的基础上的,所以还没有看第一篇文章的小伙伴先去看一下哦。
第一篇文章:QQ机器人详细制作教程(从配置到简单的功能)
具体实现 1、爆照 当别人叫我们的机器人爆照,怎么办?当然可以,直接发闪照。
可以参考帮助文档:
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

if '爆照' in message: qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'private', 'number': qq, 'msg': '[CQ:image,file={},type=flash,id=40004]'.format('https://c-ssl.duitang.com/uploads/blog/202012/16/20201216083017_6103b.thumb.1000_0.jpg')})

这个图片地址需要的是网络地址,可以上网找一个。
我自己写了一个随机图片函数,大家可以参考一下。
网址:https://www.duitang.com/search/?kw=美女&type=feed(当然你可以改关键词kw)
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

f12进入开发者模式,继续往下滑使其加载更多图片,可以看到有一个接口,有几个参数。
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

python代码:
import json, requests from bs4 import BeautifulSoup import randomimg_list = [] def get_img_random(): for j in [0,24,48,72]: # 获取网站数据 url = requests.get('https://www.duitang.com/search/?kw=美女&type=feed&start={}'.format(j)) # url.encoding = 'utf-8'#如果需要用到页面中的汉字内容,则需要进行解码,否则中文会出现乱码 html = url.text # 解析网页 soup = BeautifulSoup(html, 'html.parser') # 获取所有的img标签 movie = soup.find_all('div', class_='mbpho') # print(movie) # 获取src路径 for i in movie: imgsrc = https://www.it610.com/article/i.find_all('img')[0].get('src') img_list.append(imgsrc) return img_list i = random.randint(0, len(img_list)) print(get_img_random()[i])

【QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!】得到一个随机图片地址。
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

我根据这个写了一个网页版,页面入口:关键词随机图片
2、生日书 这个需要的是聚合数据的API接口,这个已经在第二篇文章介绍过了,大家可以去看看。
第二篇文章:搭建一个QQ机器人陪女朋友聊天并叫她起床
看一下返回的数据:
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

直接上代码(需要先去官网申请这个接口获取请求key):
import requestsdef birthday_book(birthday,key): url = "http://apis.juhe.cn/fapig/birthdayBook/query?" + 'keyword={}&key=你申请api的请求key'.format(birthday) # 发送get请求 r = requests.get(url) # 获取返回的json数据 result = r.json()['result'][key].replace('','').replace('
','') return resultdict={ '性格':'nature','爱情':'love','财运':'money','事业':'business','健康':'health','幸运数字':'lucky_num','适合的恋爱对象':'in_love','适合的朋友对象':'friend'} word='适合的恋爱对象' print(birthday_book('08-14',str(dict[word])))

搭建到机器人上需要获取两个参数,生日日期和关键词,参考我的代码:
if '生日书' in message: try: birthday = message.split(' ')[1] word = message.split(' ')[2] text = birthday_book(birthday,word) qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'private', 'number': qq, 'msg': text}) except: qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'private', 'number': qq, 'msg': '请注意格式。'})

3、获取歌词和分享音乐 参考文章:网易云音乐的常用API(搜索,歌词,mp3下载)
(1)获取歌词
URL:http://music.163.com/api/search/pc
提交方式:POST
参数:
s:歌曲名
offset:偏移量
limit:获取歌曲数
type:类型(歌曲:1、专辑:10、歌手:100、歌单:1000、用户:1002、mv:1004)
python代码:
import requests import jsondef get_lyric(song): url = "http://music.163.com/api/search/pc" pyload = { "s": song, "offset": 0, "limit": 1, 'type': 1} response = requests.post(url, data=https://www.it610.com/article/pyload).json() artists = response['result']['songs'][0]['artists'] name = '' for i in artists: name = name + '/' + i['name'] id = response['result']['songs'][0]['id'] url = 'http://music.163.com/api/song/media?id=' + str(id) r = requests.get(url) try: if len(r.json()['lyric']) <= 1: return '暂无歌词' else: return '歌手:' + name + '\n' + str(r.json()['lyric']) except: return '纯音乐,无歌词'print(get_lyric('你的眼睛像星星'))

返回结果:
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

搭建到机器人上需要获取一个参数,歌曲关键词(可以带作者),参考我的代码:
if '歌词' in message: try: song = message.split(' ')[1] text = get_lyric(song) qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'private', 'number': qq, 'msg': text}) except: qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'private', 'number': qq, 'msg': '请在歌名前面加上空格。'})

(2)分享音乐
首先需要获取歌曲的id,然后通过机器人框架的cqcode去分享。目前好像只支持群聊的发送,私聊没有反应。
文档地址:http://docs.go-cqhttp.org/cqcode/#音乐分享
QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
文章图片

获取音乐id函数:
def get_id(song): url = "http://music.163.com/api/search/pc" pyload = { "s": song, "offset": 0, "limit": 1, 'type': 1} response = requests.post(url, data=https://www.it610.com/article/pyload).json() id = response['result']['songs'][0]['id'] return id

搭建到机器人上需要获取一个参数,歌曲关键词(可以带作者),参考我的代码:
if '歌曲' in message: try: song = message.split(' ')[1] id = get_id(song) qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'group', 'number': group, 'msg': '[CQ:music,type=163,id={}]'.format(id)}) except: qq = rev['sender']['user_id'] send_msg({ 'msg_type': 'group', 'number': group, 'msg': '请在歌名前面加上空格。'})

完整项目下载地址 完整项目包括框架、代码和详细使用说明可以去链接下载:
QQ机器人基础版(文章1-2所有功能)
多功能版(文章1-3所有功能,含点歌,随机美女照片等等功能)
下载完只需要按照使用说明修改几处地方即可搭建成功!!
个人主页(含网页版机器人、舔狗语录在线生成和关键词随机图片等功能):皮小孩的个人站点

    推荐阅读