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

一、目标:

  下载网易云音乐热门歌单

二、用到的模块:

  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方法,提高程序运行的效率。

四、具体代码

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

 1 import requests
 2 import re
 3 from multiprocessing import Pool
 4
 5 headers = {
 6     ‘Referer‘: ‘https://music.163.com/‘,
 7     "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 "
 8                   "Safari/537.36"
 9 }
10
11
12 def get_page(url):
13     res = requests.get(url, headers=headers)
14     data = re.findall(‘<a title="(.*?)" href="/playlist\?id=(\d+)" class="msk"></a>‘, res.text)
15
16     pool = Pool(processes=4)
17     pool.map(get_songs, data[:3])
18     print("下载完毕!")
19
20
21 def get_songs(data):
22     playlist_url = "https://music.163.com/playlist?id=%s" % data[1]
23     res = requests.get(playlist_url, headers=headers)
24     for i in re.findall(r‘<a href="/song\?id=(\d+)">(.*?)</a>‘, res.text):
25         download_url = "http://music.163.com/song/media/outer/url?id=%s" % i[0]
26         try:
27             with open(‘music/‘ + i[1]+‘.mp3‘, ‘wb‘) as f:
28                 f.write(requests.get(download_url).content)
29         except FileNotFoundError:
30             pass
31         except OSError:
32             pass
33
34
35 if __name__ == ‘__main__‘:
36     hot_url = "https://music.163.com/discover/playlist/?order=hot"
37     get_page(hot_url)

五、运行结果

原文地址:https://www.cnblogs.com/TM0831/p/9573619.html

时间: 2024-10-15 17:44:05

【Python3爬虫】网易云音乐歌单下载的相关文章

网易云音乐歌单生成外链播放器

(一)自己创建的歌单没有生成外链选项的解决方法 解决方法: 1.分享歌单 2.打开分享界面的歌单链接 3.打开歌单即可看到生成外链的点击链接 (二)网易云音乐歌单因为版权原因无法生成外链的解决方法 1. 打开歌单页面,在"生成外链播放器"上右击,点击审查元素(检查)ctrl+shift+i: 2. 接着找到生成外链播放器这段文字直接双击复制前面的/outchain/0/577543756/ 3. 然后修改歌单链接示例:http://music.163.com/#/outchain/0/

小白学爬虫:网易云音乐歌单(一)

从零开始写爬虫,初学者的速成指南! 介绍 什么是爬虫? 先看看百度百科的定义: 号:923414804群里有志同道合的小伙伴,互帮互助,群里有不错的视频学习教程和PDF! 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper).网络蜘蛛(Web spider),其行为一般是先"爬"到对应的网页上,再把需要的信息"铲"下来. 为什么学习爬虫? 看到这里,有人就要问了:google.百度等搜索引擎已经帮我们抓取了互联网上的大部分信息了,为什么还

python爬取网易云音乐歌单音乐

在网易云音乐中第一页歌单的url:http://music.163.com/#/discover/playlist/ 依次第二页:http://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=35 依次第三页:http://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8

网易云音乐下载|网易云音乐电脑版下载

据记忆开始接触音乐软件的时候就是酷狗音乐,后来慢慢发现周围的人都是用网易云音乐.之前没有很在意,随着朋友圈分享歌曲越来越多的来自网易云音乐,自己忍不住也下载了看看.网易云音乐,感觉比较好的是界面相对比较整齐,不是很凌乱.另外就是私人FM,推荐的一些歌曲,大部分都是比较合胃口的.网易云音乐下载链接软件介绍网易云音乐是网易推出的一款音乐产品,依托专业音乐人.DJ.好友推荐及社交功能,在线音乐服务主打歌单.社交.大牌推荐和音乐指纹,以歌单.DJ节目.社交.地理位置为核心要素,主打发现和分享.网易云音乐

python3爬虫-网易云排行榜,网易云歌手及作品

import requests, re, json, os, time from fake_useragent import UserAgent from lxml import etree from urllib import parse class MyError(Exception): def __init__(self, status, msg): self.status = status self.msg = msg class WyRinking(): def __init__(se

编写一个网易云音乐爬虫程序

本次借助wxPython编写一个网易云音乐的爬虫程序,能够根据一个歌单链接下载其下的所有音乐 前置说明 网易云音乐提供了一个下载接口:http://music.163.com/song/media/outer/url?id=xxx 所以只需要拿到歌单中每首歌曲对应的 id 即可 1.分析歌单网页元素 打开网易云音乐,复制一个歌单链接 打开chrome,查看网页元素 这里有个细节,我们拿到的歌单url中有一个符号“/#”,因为之前爬虫其他网站时,也是直接请求初始url,一般Elements标签中的

网易云音乐 v2.2.0.190597 绿色便携版本

网易云音乐PC客户端现已更新至v2.2.0.190597,2.0版全新视觉设计,轻盈扁平风格,版本控们不妨更新吧,良心软件!网易音乐原生纯绿色,无碍眼广告和弹窗,拥有良好口碑和广大用户的肯定及赞赏. 网易云音乐,听见好时光!网易云音乐歌单数量大.种类全.320K高品质原生免费无限收听下载!百万曲库,首首CD音质:千位明星,亲自推荐音乐:社交关系,发现全新音乐:听音识曲,助你疯狂猜歌.网易云音乐专注于音乐发现与分享,依托专业音乐人.DJ.好友推荐及社交功能,打造全新的音乐生活. 网易云音乐让您免费

版权上屡屡受挫,网易云音乐路在何方?

近日,网易云音乐因版权问题部分歌曲被下架的事件持续发酵. 起初是很多网友发现网易云音乐歌单里的一些歌曲被下架,并显示出"因合作方要求,该资源暂时无法使用"的字样.及至8月10日,网易云音乐官微首度回应版权事件,称不是钱的问题,并提到被下架歌曲量级占到乐库的1%左右,且正在加快进行与腾讯音乐的版权转售洽谈. 然而,8月11日晚间腾讯音乐集团发给第一财经记者的最新回复表示,因为网易云音乐存在多次侵权行为,因此暂停与网易云音乐部分内容转授权合作,同时,腾讯音乐娱乐集团已向深圳法院提起诉讼,直

Python爬一爬网易云音乐

结果 对过程没有兴趣的童鞋直接看这里啦. 评论数大于五万的歌曲排行榜 首先恭喜一下我最喜欢的歌手(之一)周杰伦的<晴天>成为网易云音乐第一首评论数过百万的歌曲! 通过结果发现目前评论数过十万的歌曲正好十首,通过这前十首发现: 薛之谦现在真的很火啦~ 几乎都是男歌手啊,男歌手貌似更受欢迎?(别打我),男歌手中周杰伦.薛之谦.许嵩(这三位我都比较喜欢)几乎占了榜单半壁江山... <Fade>电音强势来袭,很带感哈(搭配炫迈写代码完全停不下来..) 根据结果做了网易云音乐歌单 : 评论数