2023年6月27日发(作者:)
QQ⾳乐爬⾍(原创)
插曲:本次作业并未参考任何他⼈的信息。该⽹站的cookie是通过js代码⾃动⽣成的,尝试折腾js代码花了不少功夫;后来在调试post时,发现以上的⼏个请求都可以不发送cookie。。。
按关键字搜索⾳乐,并下载搜索到的第⼀页结果的所有歌曲import requests,timedef download_music(name,string1): string1=string1[0] # 播放歌曲 url = '113.215.13.161//{}'.format(string1) headers = { 'Accept-Encoding': "identity;q=1, *;q=0", 'chrome-proxy': "frfr", 'Range': "bytes=0-", 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", } response = (url,headers=headers) with open('%s.m4a'%name,'wb') as f: print('正在下载%s.m4a'%name) (t)
def get_download_url(songMID): url = "/cgi-bin/" querystring = {"g_tk": "5381", "loginUin": "0", "hostUin": "0", "format": "json", "inCharset": "utf8", "outCharset": "utf-8", "notice": "0", "platform": "", "needNewCode": "0", "data": '{"req":{"module":"DispatchServer","method":"GetCdnDispatch","param":{"guid":"8103905332","calltype":0,"userip":""}},"req_0":{"module":"yServer","method":"CgiGetVkey","param":{"guid":"810390533 headers = { 'accept': "application/json, text/javascript, */*; q=0.01", 'accept-encoding': "gzip, deflate, br", 'accept-language': "zh-CN,zh;q=0.9", 'origin': "", 'referer': "/portal/", 'user-agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", 'cache-control': "no-cache", 'Postman-Token': "b6c72c9a-43b6-4eb4-916e-60c1f9dadb2b" } response = t("GET", url, headers=headers, params=querystring) json_obj = () #返回的respone是jsno字符串 list1 = ['req_0','data','midurlinfo'] list2 = json_() for i in list1: list2 = (i,None) if not list2: break list3 = [] for i in list2: (('purl',None)) return list3#返回值为包含歌曲下载url的list
#返回歌曲名称和songMIDdef get_songMID(keyword): import requests url = "/soso/fcgi-bin/client_search_cp" querystring = {"ct": "24", "qqmusic_ver": "1298", "new_json": "1", "remoteplace": "", "searchid": "42773248656208759", "t": "0", "aggr": "1", "cr": "1", "catZhida": "1", "lossless": "0", "flag_qc": "0", "p": "1", "n": "10", "w": keyword, "g_tk": "5381", "loginUin": "0", "hostUin": "0", "format": "json", "inCharset": "utf8", "outCharset": "utf-8", "notice": "0", "platform": "", "needNewCode": "0"} payload = "" headers = { 'accept': "application/json, text/javascript, */*; q=0.01", 'accept-encoding': "gzip, deflate, br", 'accept-language': "zh-CN,zh;q=0.9", 'origin': "", 'referer': "/portal/", 'user-agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", } response = t("GET", url, data=payload, headers=headers, params=querystring) json_obj = () list1 = ['data','song','list'] list2 = json_() for i in list1: list2 = (i,None) if not list2: break # print('---------------------------------------------------------------') for i in list2: mid = ('mid',None) name = ('name',None) lyric = ('lyric',None) singer = ('singer',None)[0].get('name') print(mid,name+'_'+singer+'_'+lyric) #003h3CYS3UxDB4 ⼩酒窝_林俊杰_《爱情睡醒了》电视剧插曲 yield mid,name+'_'+singer+'_'+lyric#最终实现功能:搜索关键字,并下载搜索到的第⼀页结果的所有歌曲for songmid,song_name in get_songMID('⼩酒窝'): try: (3) abc = get_download_url(songmid) (3) download_music(song_name,abc) # break except:passQQ⾳乐爬⾍代码
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687865550a52027.html
评论列表(0条)