美文网首页Python学习资料整理python社区
【Python3爬虫】网易云音乐歌单下载

【Python3爬虫】网易云音乐歌单下载

作者: 9ba4bd5525b9 | 来源:发表于2019-04-03 16:03 被阅读56次

    一、目标:

      下载网易云音乐热门歌单

    二、用到的模块:

      requests,multiprocessing,re。

    三、步骤:

    (1)页面分析:首先打开网易云音乐,选择热门歌单,可以看到以下歌单列表,然后打开开发者工具

    因此我们需要请求的url就是https://music.163.com/discover/playlist,然后用requests.get()方法请求页面,对于返回的结果,用正则表达式进行解析,得到歌单名字和歌单id,解析的正则表达式如下:

    res = requests.get(url, headers=headers)

    data = re.findall('<a title="(.*?)" href="/playlist\?id=(\d+)" class="msk"></a>', res.text)

      (2)得到歌单名字和歌单id后,构造歌单的url,然后模仿步骤(1)可以得到歌曲名字和歌曲id,解析的正则表达式如下:

    re.findall(r'<a href="/song\?id=(\d+)">(.*?)</a>', res.text)

      再得到歌曲id后,构造歌曲的url,然后用requests.get().content方法下载歌曲,歌曲的url构造方法如下:

    "http://music.163.com/song/media/outer/url?id=%s" %(歌曲id)

    (3)由于部分歌曲的名字并不能作为文件名保存下来,所以用到了try...except,对于不能保存为文件名的歌曲,我选择pass掉==

    (4)因为要下载多个歌单,一个歌单里又有很多歌曲,所以用到了multiprocessing模块的Pool方法,提高程序运行的效率。

    四、具体代码

      因为下载所有歌单会需要很长时间,所以我们先下载前三个歌单试试==

    五、运行结果

    相关文章

      网友评论

        本文标题:【Python3爬虫】网易云音乐歌单下载

        本文链接:https://www.haomeiwen.com/subject/zxyzbqtx.html