龙空技术网

用python爬取无损音质MP3代码(未优化)

孤獨血影 509

前言:

如今同学们对“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