仅供学习参考

Python爬取网易云音乐网易云音乐歌手歌曲和歌单,并下载到本地
①找到要下载歌手歌曲的链接,这里用的是:
https://music.163.com/#/artist?id=10559
然后更改你要保存的目录,目录要先建立好文件夹,例如我的是保存在D盘-360下载-网易云热歌榜文件夹内,就可以完成下载。如果文件夹没有提前建好,会报错[Errno 2] No such file or directory。

②找到要下载歌单的链接,这里用的是:
https://music.163.com/#/playlist?id=5175828159
只能下载前面10首。
之后的歌曲信息服务器不给数据,无法拿到歌曲id。
我尝试使用网易云音乐PC端(可以加载歌单所有歌曲),用fiddler进行抓包,是POST请求,通过模拟请求,得到的response是乱码,尝试utf-8、gbk、gbk2312等解码也是乱码。应该客户端拿到数据是加密的,我没有找到其解密方式。只能使用模拟网页请求拿取歌单前面10首歌曲。
若有好的想法,可以一起探讨。
代码写于:2020.8.23

③要下载热歌榜所有歌曲,请查看我前一个发布内容

from urllib import request
from bs4 import BeautifulSoup
import re
import requests
import timeclass Music(object):def __init__(self, baseurl, path):head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"}baseurl = baseurl.replace("#/", "")self.baseurl = baseurlself.headers = headself.path = pathdef main(self):html = self.askurl()bs4 = self.analysis(html)id = self.matching(bs4)self.save(id)def askurl(self):req = request.Request(url=self.baseurl, headers=self.headers)response = request.urlopen(req)html = response.read().decode("utf-8")return htmldef analysis(self, html):soup = BeautifulSoup(html, "html.parser")bs4 = soup.find_all("li")bs4 = str(bs4)return bs4def matching(self, bs4):rule = re.compile(r'href="/song\?id=(\d*?)"', re.S)id = re.findall(rule, bs4)return iddef save(self, id):for i in id:url = "https://music.163.com/song?id=" + ireq = request.Request(url=url, headers=self.headers)response = request.urlopen(req)html = response.read().decode("utf-8")soup = BeautifulSoup(html, "html.parser")bs4 = soup.find_all("title")bs4 = str(bs4)rule = re.compile(r'<title>(.*?) - (.*?) - 单曲 - 网易云音乐</title>', re.S)name = re.findall(rule, bs4)name = name[0]singername = name[1].replace(r"/", "_")print("正在下载:" + name[0] + " - " + singername + "……")saveurl = "http://music.163.com/song/media/outer/url?id=" + icontent = requests.get(url=saveurl, headers=self.headers).contentwith open(self.path + name[0] + " - " + singername + ".mp3", "wb") as f:f.write(content)print(name[0] + " - " + singername + "-----------下载完毕。")time.sleep(1)returnif __name__ == "__main__":artisturl = "https://music.163.com/#/artist?id=10559"  # 下载歌手歌曲的urlpath1 = "D:/360下载/网易云音乐/1/"  # 保存路径1artist_demo = Music(artisturl, path1)artist_demo.main()playlisturl = "https://music.163.com/#/playlist?id=5175828159"  # 下载歌单的urlpath2 = "D:/360下载/网易云音乐/2/"  # 保存路径2playlist_demo = Music(playlisturl, path2)playlist_demo.main()print("\n全部歌曲下载完毕")

是不是非常简单,完整的识破教程获取加群哦:1136192749

Python爬取网易云音乐歌手歌曲和歌单!推荐好听的歌吗?相关推荐

  1. Python爬取网易云音乐歌手歌曲和歌单(爬虫)

    Python爬取网易云音乐歌手歌曲和歌单 是 仅供学习参考 Python爬取网易云音乐网易云音乐歌手歌曲和歌单,并下载到本地 ①找到要下载歌手歌曲的链接,这里用的是: https://music.16 ...

  2. 利用selenium爬取网易云音乐歌手歌曲信息并分析

    1.网页分析 网址:https://music.163.com/#/search/m/?s=许嵩&type=1 观察网页,所有的歌曲信息都在class="srchsongst&quo ...

  3. python爬取网易云音乐百强榜单

    #引用第三方库,re,requests库 import requests #用来提取 import re #用来正则 #对网页进行提取,把里面的信息提取出来 def html(url):try:#看到 ...

  4. python爬取网易云音乐排行榜数据

    python爬取网易云音乐排行榜歌曲及评论 网易云音乐排行榜歌曲及评论爬取 主要注意问题:selenium 模拟登录.iframe标签定位.页面元素提取. 在利用selenium定位元素并取值的过程中 ...

  5. python爬虫No.1|爬取网易云音乐歌手的前50首歌曲ID及名字

    自学pythonのNo.5 引语 知识总结 Requests XPath 案例 曾经有这样的梗黑网易云音乐 实际上网易云是很不错的音乐软件之一.这个梗挺让我不舒服的,挫折谁都有,矫情没必要但对矫情之人 ...

  6. python爬取网易云音乐生成王力宏歌曲词云

    python爬取网易云音乐生成王力宏歌曲词云 # -*- coding:utf-8 -*- # 网易云音乐,通过歌手id生成词云 import requests import sys,re,os fr ...

  7. 用Python爬取网易云音乐歌曲

    前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将 ...

  8. [爬虫]Python爬取网易云音乐搜索并下载歌曲!

    Python爬取网易云音乐搜索并下载歌曲! 文章目录 Python爬取网易云音乐搜索并下载歌曲! 1.准备工作 2."实地"观察 3.开始码代码! 4.搜索并下载 结束语 1.准备 ...

  9. Python爬取网易云音乐所有歌手的名称和链接

    一.需求 Python爬取网易云音乐所有歌手的名称和链接 二.代码实现 import requests from lxml import etree from urllib import reques ...

  10. python爬音乐-用python爬取网易云音乐歌曲的歌词

    今天我来分享一下如何用python爬取网易云音乐歌曲的歌词,网易云音乐的歌词的爬取思路同前面介绍过的爬取网易云音乐的歌曲评论的爬取思路一致.由于两者的加密思路都是一致的,因此我们只需分析出被加密了的参 ...

最新文章

  1. linux --- 进程调度
  2. 三种ajax解析模式!
  3. 常见的14种异常心电图的波形特点
  4. 一发就会被秒赞的句子
  5. C#自定义规则对比两个集合的对象是否相等
  6. spring Quartz基于配置文件和注解的实现
  7. 多线程之线程通信条件Condition
  8. STKO助力OpenSEES系列:结构模态分析以及动力特性(MDOF与等效SDOF验证)
  9. Tracup丨什么是敏捷产品管理?
  10. ChatGPT在教育行业如何应用?
  11. 神经网络训练梯度算法详解
  12. Rancher2.0与DataDog集成部署
  13. 模拟定时自动关机编程程序源码
  14. jasperreports-6.0.0生成PDF,SWF文件无法显示中文解决办法
  15. 适用于Shiny的ESS代码缩进设置
  16. 前端HTML中的怪异盒模型
  17. 一文读懂大唐杯所有名词解释
  18. 电子小制作:电烙铁恒温控制器
  19. 学习SVM(四) 理解SVM中的支持向量(Support Vector)
  20. 在html中属于复选框标记的是,在 HTML 表单中,文本框、口令框和复选框都是用 INPUT 标记符生成的_学小易找答案...

热门文章

  1. Kinect——2.Kinect传感器的硬件组成及功能介绍
  2. Leslie cheung's Speech
  3. 使用WP-Salts-Update-CLI自动更新您的WordPress盐
  4. UE4-使用WebBrowser插件打开720云全景图
  5. 从汇编层次理解malloc函数
  6. 利用Greenfoot制作简单的小游戏——记忆翻牌游戏(二)
  7. 百度指数Cipher-text加密
  8. 南通大学计算机学院本科考研,南通大学各学院2021考研分数线已公布
  9. java导出功能(多个sheet页数据导出)
  10. CSS盒模型的应用--个人名片的制作