个人音乐网站源码分享搭建?音乐网站源码免费下载

老铁们,大家好,相信还有很多朋友对于个人音乐网站源码分享搭建和音乐网站源码免费下载的相关问题不太懂,没关系,今天就由我来为大家分享分享个人音乐网站源码分享搭建以及音乐网站源码免费下载的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

从歌曲网站,获取音频和歌词的流程:

1,输入歌曲名,查找网站中存在的歌曲id2,拿歌曲id下载歌词lyric

简单的url拼接

3,拿歌曲id下载音频mp3

先用一个POST请求,拿ID取音频资源路径,

再用GET请求,拿到音频资源

4个网络请求,解决,

搜索歌曲,获取歌词,获取音频资源路径,获取音频资源

注意的是,4个网络请求,都要模拟正常的浏览器请求,

GET请求,需要配置请求头,POST请求,需要配置请求头和请求体

1,查找网站的歌曲

先准备,模拟正常的浏览器请求

配置Session,

有一个加解密,具体见githubrepo.

def__init__(self,timeout=60,cookie_path=&39;):\nself.headers={\n&39;:&39;,\n&39;:&39;,\n&39;:&39;,\n&39;:&39;,\n&39;:&39;,\n&39;:&39;,\n&39;:&39;,\n&39;:&39;\n}\nself.session=requests.Session()\nself.session.headers.update(self.headers)\nself.session.cookies=cookiejar.LWPCookieJar(cookie_path)\nself.download_session=requests.Session()\nself.timeout=timeout\nself.ep=Encrypyed()\n1234567891011121314151617

封装Post请求方法

\ndefpost_request(self,url,params):\n&34;&34;&34;\n\ndata=self.ep.encrypted_request(params)\nresp=self.session.post(url,data=data,timeout=self.timeout)\nresult=resp.json()\nifresult[&39;]!=200:\nclick.echo(&39;)\nelse:\nreturnresult\n1234567891011121314

去搜索:

defsearch(self,search_content,search_type,limit=9):\n&34;&34;&34;\n\nurl=&39;\nparams={&39;:search_content,&39;:search_type,&39;:0,&39;:&39;,&39;:limit}\nresult=self.post_request(url,params)\nreturnresult\n12345678910111213

拿到搜索结果:

\nresult=self.search(song_name,search_type=1,limit=limit)\n\nifresult[&39;][&39;]<=0:\nclick.echo(&39;.format(song_name))\nelse:\nsongs=result[&39;][&39;]\nifquiet:\nsong_id,song_name=songs[0][&39;],songs[0][&39;]\nsong=Song(song_id=song_id,song_name=song_name,song_num=song_num)\nreturnsong\n1234567891011

下载歌词

下载很简单

lyricUrl=&39;.format(song_id,csrf)\nlyricResponse=self.session.get(lyricUrl)\n12

拿到一个json,获取里面的歌词,

lyricJSON=lyricResponse.json()\nlyrics=lyricJSON[&39;][&39;].split(&34;)\nlyricList=[]\nforwordinlyrics:\ntime=word[1:6]\nname=word[11:]\np=Node(time,name)\nlyricList.append(p)\njson_string=json.dumps([node.__dict__fornodeinlyricList],ensure_ascii=False,indent=4)\n\n\n1234567891011

写入新建的本地文件

ifnotos.path.exists(folder):\nos.makedirs(folder)\nfpath=os.path.join(folder,str(song_num)+&39;+song_name+&39;)\ntext_file=open(fpath,&34;)\nn=text_file.write(json_string)\ntext_file.close()\n123456

下载音频分两步

先拿到音频资源路径

url=&39;\ncsrf=&39;\nparams={&39;:[song_id],&39;:bit_rate,&39;:csrf}\nresult=self.post_request(url,params)\n39;data&39;url&歌曲不存在\nifsong_urlisNone:\nclick.echo(&39;.format(song_id))\nelse:\nreturnsong_url\n\n12345678910111213

再获取音频资源

ifnotos.path.exists(fpath):\nresp=self.download_session.get(song_url,timeout=self.timeout,stream=True)\nlength=int(resp.headers.get(&39;))\nlabel=&39;.format(song_name,int(length/1024))\n1234

一边下载,一边看进度

withclick.progressbar(length=length,label=label)asprogressbar:\nwithopen(fpath,&39;)assong_file:\nforchunkinresp.iter_content(chunk_size=1024):\nifchunk:\nsong_file.write(chunk)\nprogressbar.update(1024)\n\n\n12345678

需要源码01私信小编

关于本次个人音乐网站源码分享搭建和音乐网站源码免费下载的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平