目錄
- 前言
- 具體實作
-
- 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 random
img_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 requests
def 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 result
dict={'性格':'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 json
def 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
搭建到機器人上需要擷取一個參數,歌曲關鍵詞(可以帶作者)
完整項目下載下傳位址
完整項目包括架構、代碼和詳細使用說明可以去連結下載下傳:
QQ機器人基礎版(文章1-2所有功能)
多功能版(文章1-3所有功能,含點歌,随機美女照片等等功能)
下載下傳完隻需要按照使用說明修改幾處地方即可搭建成功!!
個人首頁(含網頁版機器人、舔狗語錄線上生成和關鍵詞随機圖檔等功能):皮小孩的個人站點