搭建一个点歌QQ机器人,另外还能看美女

article/2025/10/6 23:35:32

目录

  • 前言
  • 具体实现
    • 1、爆照
    • 2、生日书
    • 3、获取歌词和分享音乐
  • 完整项目下载地址(配置了python环境)
  • 完整项目下载地址(电脑没有python环境)

前言

完整项目,包括框架、代码和详细使用说明可以去社区下载(下载完只需要按照使用说明修改几处地方即可搭建成功!):
QQ机器人基础python版(文章1-2所有功能)
QQ机器人多功能python版(文章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 = 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])

得到一个随机图片地址。
在这里插入图片描述
我根据这个写了一个网页版,页面入口:关键词随机图片

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('<p>','').replace('</p>','')return resultdict={'性格':'nature','爱情':'love','财运':'money','事业':'business','健康':'health','幸运数字':'lucky_num','适合的恋爱对象':'in_love','适合的朋友对象':'friend'}
word='适合的恋爱对象'
print(birthday_book('08-14',str(dict[word])))

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=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('你的眼睛像星星'))

返回结果:
在这里插入图片描述
搭建到机器人上需要获取一个参数,歌曲关键词(可以带作者)

(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=pyload).json()id = response['result']['songs'][0]['id']return id

搭建到机器人上需要获取一个参数,歌曲关键词(可以带作者)

完整项目下载地址(配置了python环境)

完整项目包括框架、代码和详细使用说明可以去链接下载(下载完只需要按照使用说明修改几处地方即可搭建成功!):
QQ机器人基础版(文章1-2所有功能)
QQ机器人多功能版(文章1-3所有功能)

在这里插入图片描述
使用说明是word版本,说的十分详细
在这里插入图片描述

完整项目下载地址(电脑没有python环境)

电脑没有python环境或者觉得配置太麻烦可直接购买exe版本,只要有电脑就可以运行。
QQ机器人基础版exe
QQ机器人多功能版exe
同样里面都有使用说明,半分钟搞定

在这里插入图片描述

但是这也有一个坏处,就是不可编程修改,功能已经固定了,但适合编程小白!!


http://chatgpt.dhexx.cn/article/dhDrdkPp.shtml

相关文章

基于java的音乐网站的设计与实现

欢迎添加微信互相交流学习哦&#xff01; 项目源码&#xff1a;https://gitee.com/oklongmm/biye 基于java的音乐网站的设计与实现 摘 要 随着互联网和宽带上网的普及&#xff0c;网络传输以其特有的快速、高效、便捷的传输方式越来越被人们接受。在当今社会的影响下&…

android wifi传输音乐,让你通过WiFi分享手机上的歌曲,音乐共享软件MyStream十一发布Android版...

MyStream原来是 iOS上的音乐共享应用&#xff0c;十一期间&#xff0c;它将跨出iOS平台&#xff0c;首次推出Android版音乐共享服务。 MyStream和主流的Pandora、Spotify、Turntable.fm、Songza这些音乐分享服务并不一样。它将手机上的本地音乐通过WiFi或蓝牙和周围的设备进行音…

竞品分析:网易云音乐和QQ音乐,音乐类app的战场

文章从产品的角度分别分析两款产品的行业市场、功能、业务模式以及运营策略&#xff0c;进一步了解两款产品的差异与不同。 一、产品概况 1. 产品概述及版本 网易云音乐是一款专注于发现与分享的音乐产品&#xff0c;依托专业音乐人、DJ、好友推荐及社交功能&#xff0c;为用…

网易云音乐竞品分析

概述 1.原因 个人平时使用网易云较多&#xff0c;正好想学学竞品分析怎么写。因此&#xff0c;想通过梳理市场最新报告和数据表现&#xff0c;了解在线音乐行业的现状和市场情况&#xff1b;分析网易云音乐目前的市场地位、功能设计、UI设计等方面&#xff0c;与相关竞品进行对…

音乐平台程序源码分享

简介&#xff1a; 这是一个音乐分享平台源码&#xff0c;用户可以自行上传音乐分享&#xff0c;源码自适应手机&#xff0c;使用很方便。 安装说明&#xff1a; 演示环境&#xff1a;宝塔PHP5.5 mysql5.6 Apache 2.4.46&#xff0c;把程序上传到根目录&#xff0c;然后修改数…

分享两个音乐播放地址

下歌吧音乐下载平台 http://music.y444.cn/ 搜索时候如果没有想要的&#xff0c;可以切换线路搜索一下 MYFREEMP3 MYFREEMP3 一个音乐下载以及播放网站 下载后的音乐名称需要直接更改一下&#xff0c;可以下载歌曲的歌词等 http://tools.liumingye.cn/music/?pagesearch…

基于web的音乐分享网站的设计与实现

欢迎添加微信互相交流学习哦&#xff01; 项目源码&#xff1a;https://gitee.com/oklongmm/biye2 音乐分享网站的设计与实现 摘 要 随着社会的发展时代的前进&#xff0c;IT行业的发展也是日新月异&#xff0c;对人类的生产和生活方式产生了很大影响。网络传播以其特有的快…

把自己录制的mp3音乐分享到朋友圈

参考&#xff1a;https://www.zhihu.com/question/345647212 录了首歌&#xff0c;想上传至微信朋友圈&#xff0c;发现还没那么简单。 mp3音乐文件上传到网易云音乐后&#xff0c;无法使用分享功能&#xff0c;所以无法分享到朋友圈。 可通过以下步骤解决。 一、将mp3文件发…

#pragma comment

原因:突然看到#pragma comment,不知其意思.感觉自己是个渣渣.所以写了一篇博客. #pragma comment 简单来说就是链接了一个文件&#xff0c;它可以是compiler&#xff0c;exestr&#xff0c;lib&#xff0c;linker文件. 例如&#xff1a; #include<WinSock2.h> #pragma…

预处理 #pragma 命令详解

关注、星标公众号&#xff0c;不错过精彩内容 素材来源&#xff1a;网络 编辑整理&#xff1a;strongerHuang 预处理指令 #pragma 相信程序员都知道&#xff0c;但在所有的预处理指令中&#xff0c;#pragma 指令可能是最复杂的了&#xff0c;它的作用是设定编译器的状态或者是指…

#pragma DATA_SECTION与#pragma CODE_SECTION的使用

&#xff08;一&#xff09;#pragma DATA_SECTION 利用CCS进行DSP编程时&#xff0c;如果不指定变量的存储位置&#xff0c;那么编译器会自动给变量分配存储位置&#xff0c;但是&#xff0c;有些时候&#xff0c;需要将某个变量存放到某个特定的位置&#xff0c;这个时候就可…

#pragma用法大全

一、#pragma 1.1 #pragma message message能够在编译信息输出窗口中输出相应的信息&#xff0c;这对于源代码信息的控制是非常重要的。 #pragma message("test message!")1.2 #pragma code_seg 格式如&#xff1a; #pragma code_seg( [ [ { push | pop}, ] [ iden…

C语言#pragma使用

1.#pragma简介 &#xff08;1&#xff09;#pragma用于指示编译器完成一些特定的动作 &#xff08;2&#xff09;#pragma所定义的很多指示字是编译器特有的 &#xff08;3&#xff09;#pragma在不同的编译器间是不可移植的 &#xff08;4&#xff09;预处理器将忽略它不认识的#…

C语言#pragma使用方法

C语言#pragma使用方法 一、总结 1、#pragma用于指示编译器完成一些特定的动作 2、#pragma所定义的很多指示字是编译器特有的(每种编译可能都不一样) &#xff08;1&#xff09; #pragma message 用于自定义编译信息 &#xff08;2&#xff09;#pragma once 用于保证头文件只被…

pragma是什么意思?(词源强迫症患者的无聊问题

------此处的pragma仅指各类编程语言中的预处理指令#pragma------ 作为一位词源强迫症患者&#xff0c;为了我自己&#xff08;以免遗忘&#xff09;和广大病友们&#xff0c;我将找到的一些信息源在此记录如下&#xff1a; ---中文信息 “#Pragma是预处理指令它的作用是设定编…

#pragma的常用方法讲解

概述 我们在写代码时&#xff0c;总会遇到头文件多次包含的情况&#xff0c;刚开始时我们使用宏定义进行控制&#xff0c;之后发现有#pragma once这样简单的东西&#xff0c;当时是很兴奋&#xff0c;以为#pragma就这一种用法。唉~&#xff0c;现在想想当时还是年轻啊&#xf…

Attribute(特性)

一向都觉得.NET的Attribute好神秘。一个方框框住的东西&#xff0c;置身于类、方法的头部&#xff0c;本身不在类或方法里面&#xff0c;但又会起作用&#xff0c;有时作用还很大&#xff0c;仿佛充满了魔力。简直给人一种无冕之王&#xff0c;幕后之黑手的感觉&#xff01; 某…

attribute的用法--C#

一直以来都没理解attribute是个什么东西&#xff0c;也没怎么用&#xff0c;但是看msdn或者git上源码使用的还是蛮频繁的&#xff0c;今天好好整理了下&#xff0c;写下自己的理解和例子&#xff1a; attribute主要用来说明代码段的的信息&#xff0c;标志等&#xff1b;可以一…

attribute属性

attribute属性 __attribute__介绍 attribute的格式. __attribute__((attribute-list))attribute属性可以在编译的时候告诉编译器函数, 结构体的属性是什么, 进行某些编译优化, 也可以提供更加准确的错误检查. attribute是GNU特有的特性 这里主要说明attribute的4个属性, 分…

【C#】Attribute

原文链接&#xff1a;http://bbs.51aspx.com/showtopic-33963.html 前言 作为一个.NET开发人员&#xff0c;了解Attribute的重要性&#xff0c;用.NET大师Jeffrey Richter的话就是“任何.NET Framework 开发人员都有必要对定制attribute有一个牢靠的掌握”&#xff0c;所以掌…