QQ机器人|搭建一个多功能QQ机器人详细教程,建议收藏!
目录
- 前言
- 具体实现
-
- 1、爆照
- 2、生日书
- 3、获取歌词和分享音乐
- 完整项目下载地址
前言 完整项目包括框架、代码和详细使用说明可以去链接下载:
QQ机器人基础版(文章1-2所有功能)
多功能版(文章1-3所有功能,含点歌,随机美女照片等等功能)
下载完只需要按照使用说明修改几处地方即可搭建成功!!
第一篇文章:QQ机器人详细制作教程(从配置到简单的功能)
第二篇文章:搭建一个QQ机器人陪女朋友聊天并叫她起床
前两篇文章都上了CSDN的综合热榜,首先得感谢官方的推荐,其次更需要感谢的是小伙伴们的支持!我会继续努力的!也期待大家对本文的一键三连哦。
文章图片
本篇文章增加了机器人的功能,主要是通过一些调用好玩的接口来实现的,下面上一些截图:
文章图片
文章图片
文章图片
文章图片
要实现以上功能都是在第一篇文章的基础上的,所以还没有看第一篇文章的小伙伴先去看一下哦。
第一篇文章:QQ机器人详细制作教程(从配置到简单的功能)
具体实现 1、爆照 当别人叫我们的机器人爆照,怎么办?当然可以,直接发闪照。
可以参考帮助文档:
文章图片
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)
文章图片
f12进入开发者模式,继续往下滑使其加载更多图片,可以看到有一个接口,有几个参数。
文章图片
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机器人详细教程,建议收藏!】得到一个随机图片地址。
文章图片
我根据这个写了一个网页版,页面入口:关键词随机图片
2、生日书 这个需要的是聚合数据的API接口,这个已经在第二篇文章介绍过了,大家可以去看看。
第二篇文章:搭建一个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('你的眼睛像星星'))
返回结果:
文章图片
搭建到机器人上需要获取一个参数,歌曲关键词(可以带作者),参考我的代码:
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/#音乐分享
文章图片
获取音乐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所有功能,含点歌,随机美女照片等等功能)
下载完只需要按照使用说明修改几处地方即可搭建成功!!
个人主页(含网页版机器人、舔狗语录在线生成和关键词随机图片等功能):皮小孩的个人站点
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 一个人的碎碎念
- 七年之痒之后
- 我从来不做坏事
- 异地恋中,逐渐适应一个人到底意味着什么()
- 迷失的世界(二十七)
- live|live to inspire 一个普通上班族的流水账0723
- 遗憾是生活的常态,但孝顺这件事,我希望每一个人都不留遗憾
- NO.38|NO.38 我不是嫁不出去,而是不想嫁