python下载MP3到本地

某日,在一个风和日丽,鸟语花香的早晨,我的微信突然闪闪闪收到一个消息:
python下载MP3到本地_第1张图片
当我复制打开那一串复杂的网址的时候,眼前出现的是一个微信公众号上的一首歌。按下F12,找不到任何跟MP3有关的信息。
这种事情怎么会难倒我那颗好奇心呢,于是我打开了万能的谷歌浏览器,点击播放歌曲。。。
这是一首什么歌啊~
听着听着。。。不对,我不是来听歌的。
按下F12,点击Network,重新播放歌曲,此时看看Network下触发的事件:
python下载MP3到本地_第2张图片可以看到播放按钮触发了三个事件,一个是图片gif,一个是html,另一个media可能就是我们需要的MP3文件了。
点击第三个media事件,查看头部请求地址:
python下载MP3到本地_第3张图片
访问这个url,发现是一个MP3,就是我们这次下载的目标了。接下来就是写代码下载到本地了。
具体代码如下:

# 下载MP3文件到本地
import os
import requests

def DownloadFile(mp3_url, save_url,file_name):
    try:
        if mp3_url is None or save_url is None or file_name is None:
            print('参数错误')
            return None
        # 文件夹不存在,则创建文件夹
        folder = os.path.exists(save_url)
        if not folder:
            os.makedirs(save_url)
        # 读取MP3资源
        res = requests.get(mp3_url,stream=True)
        # 获取文件地址
        file_path = os.path.join(save_url, file_name)
        print('开始写入文件:', file_path)
        # 打开本地文件夹路径file_path,以二进制流方式写入,保存到本地
        with open(file_path, 'wb') as fd:
            for chunk in res.iter_content():
                fd.write(chunk)
        print(file_name+' 成功下载!')
    except:
        print("程序错误")

if __name__ == "__main__":
    # MP3源地址url
    url = 'https://res.wx.qq.com/voice/getvoice?mediaid=MzU1Njc2MzY3M18yMjQ3NDg0MTkx'
    # MP3保存文件夹
    save_url='D:/music/'
    # MP3文件名
    file_name = 'mymusic.mp3'
    DownloadFile(url,save_url, file_name)

运行程序,提示下载成功!
python下载MP3到本地_第4张图片
在D盘中找到相应的文件夹,打开发现真的多了一个MP3格式的文件。
双击播放,熟悉的音乐开始响起,证明这次程序是成功的。

你可能感兴趣的:(MP3下载)