前言:
如今同学们对“pythonmp3”大体比较着重,朋友们都想要剖析一些“pythonmp3”的相关内容。那么小编在网上搜集了一些对于“pythonmp3””的相关资讯,希望同学们能喜欢,小伙伴们一起来了解一下吧!通过页面抓包分析后,最终编写代码并测试成功,记录一下
直接上代码:
import requestsimport reif __name__ == '__main__': headers = { 'Accept':'application/json,text/plain,*/*', 'Accept-Encoding': 'gzip,deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep - alive', 'Cookie':'Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1646119037; _ga=GA1.2.508252985.1646119039; _gid=GA1.2.547925733.1646119039; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1646120686; kw_token=SEBFCWA00YB', 'csrf': 'SEBFCWA00YB', 'Host': ';, 'Referer': ';, 'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', } search_url = '; play_url = '; key = input("请输入需要下载的歌曲名称:") param_1 = { 'key':key, 'httpsStatus': '1', 'reqId': '76901a60-9933-11ec-9ae2-7558153549c6', } r = requests.get(url=search_url,params=param_1,headers=headers) print(r.status_code) r.encoding = 'utf-8' r_text = r.text print(r_text) obj = re.compile(r'musicrid.*?MUSIC_(?P<mid>.*?)",',re.S) result = obj.search(r_text) mid = result.group("mid") print(mid) param_play = { 'mid': mid, 'type': 'music', 'httpsStatus': '1', 'reqId': '490371a0-993d-11ec-b3dd-b3f050d56567', } r_down = requests.get(url=play_url,params=param_play,headers=headers) print(r_down.status_code) r_down.encoding = 'utf-8' r_down_text = r_down.text print(r_down_text) mp3_obj = re.compile(r'"url":"(?P<down_url>.*?)"}',re.S) down_result = mp3_obj.search(r_down_text) result_url = down_result.group("down_url") print(result_url,"下载地址已获取!") down_mp3 = requests.get(result_url) with open(f"mp3/{key}.mp3",mode="wb") as f: f.write(down_mp3.content) print("歌曲:{} 下载完成!".format(key))
通过这个代码实例的学习,可以掌握requests请求模块和re 正则表达式的使用方法。当然,分析这个过程会让新手受益匪浅,同时享受成功带来的欢乐。
这个代码中间过程也给打印了内容,方便自己学习的时候,可以同时分析这个下载过程。这个代码还可以进一步优化成用列表方式,批量下载歌曲。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #pythonmp3