首頁 > 軟體

教你使用Python獲取QQ音樂某個歌手的歌單

2022-04-02 19:01:01

1、實驗內容:

從qq音樂中獲取某個你喜歡的歌手清單。詳細內容如下,以小紅莓的歌曲清單為例:

主要目的是獲取qq音樂某位歌手的單曲清單,主要涉及到的庫有request、json。

2、實驗步驟如下所示:

2.1、首先要了解qq音樂網站的robots協定。

2.2、開啟qq音樂網頁、檢視頁面詳情,瞭解頁面。

2.3分析網頁原始碼Elements

2.4、點選Headers,拿到相關的引數。

2.5、根據實際情況編寫合適的程式碼進行實驗操作

簡易版本以CSV形式呈現爬取結果,完整程式碼如下:

import requests  # 請求
from fake_useragent import UserAgent
import json
print("請輸入您想要爬取清單的歌手名:")
name = input()
ua = UserAgent()
headers = {
  'User-Agent': ua.random,
  'cookie':'RK=LdWlHMsQ+b; ptcz=42785168e679b66b7913e09a4387fc94c5ad2d81419840eb33a502abc14ae6c6; pgv_pvid=4366402929; fqm_pvqid=ed1a5c76-5778-4d72-aa4f-389d94cd126e; ts_uid=886687551; fqm_sessionid=2b4a4a2f-b921-4e70-861d-54a608695f10; pgv_info=ssid=s5047316408; ts_refer=www.so.com/link; _qpsvr_localtk=0.49574447171587144; login_type=1; wxopenid=; tmeLoginType=2; psrf_qqaccess_token=D40E8A445E33FC38FB47291B44C03E96; qqmusic_key=Q_H_L_5Opuh_YbF8NbIlG-FqC_2ns2gXyWSTh_cplWyZPhEpyIWDVtQUGLwQQ; psrf_access_token_expiresAt=1656146941; psrf_qqunionid=93ABF9072A8734C330E108787CC182AE; uin=2363310076; wxunionid=; qm_keyst=Q_H_L_5Opuh_YbF8NbIlG-FqC_2ns2gXyWSTh_cplWyZPhEpyIWDVtQUGLwQQ; psrf_musickey_createtime=1648370941; qm_keyst=Q_H_L_5Opuh_YbF8NbIlG-FqC_2ns2gXyWSTh_cplWyZPhEpyIWDVtQUGLwQQ; psrf_qqopenid=900C2C2A46F36818FEB00C24A5EEC6B0; wxrefresh_token=; psrf_qqrefresh_token=8289BF671C8907272471F03D564F5A69; euin=owosoio5oenl7c**; ts_last=y.qq.com/n/ryqq/search',
  'referer':'https://y.qq.com/'
}
 
url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=10&w={}'
resp = requests.get(url.format(name), headers=headers)
json_str = resp.text
json_str = json_str[9:-1]
json_dict = json.loads(json_str)
songlist = json_dict['data']['song']['list']
f = open("list.csv", mode="w", encoding="utf-8")
for song in songlist:
  print('歌名或專輯名為:'+song['albumname'])
  f.write(song['albumname'])
  f.write('n')

 2.6.通過程式碼進行演示執行結果

以周深為例:

3、實驗分析

4、遇到的困難和解決點:

到此這篇關於Python獲取QQ音樂某個歌手的歌單的文章就介紹到這了,更多相關Python獲取歌手的歌單內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com