python3 下载网易云音乐歌单
1 安装scrapy
最简单的,万无一失的方法, 打开Anaconda的Navigator, 选择"ALL", 然后搜索"scrapy", 选中前面的对号, 右下角会有个"apply",就是下载安装了.几分钟搞定
或者打开anaconda的prompt, 直接conda install scrapy
, 然后y
确认安装.2 代码部分
import requests,os,time,sys,re
from scrapy.selector import Selector
from urllib import request
from tqdm import tqdmdir_path = r'F:/pachong_cloud_1' # 文件下载地址class wangyiyun():def __init__(self):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36','Referer': 'http://music.163.com/'}self.main_url='http://music.163.com/'self.session = requests.Session()self.session.headers=self.headersdef get_songurls(self,playlist):'''进入所选歌单页面,得出歌单里每首歌各自的ID 形式就是“song?id=64006"'''url=self.main_url+'playlist?id=%d'% playlistre= self.session.get(url) #直接用session进入网页,懒得构造了sel=Selector(text=re.text) #用scrapy的Selector,懒得用BS4了songurls=sel.xpath('//ul[@class="f-hide"]/li/a/@href').extract()print(songurls)return songurls #所有歌曲组成的list##['/song?id=64006', '/song?id=63959', '/song?id=25642714', '/song?id=63914', '/song?id=4878122', '/song?id=63650']def get_songinfo(self,songurl):'''根据songid进入每首歌信息的网址,得到歌曲的信息return:'64006','陈小春-失恋王'''url=self.main_url+songurlre=self.session.get(url)sel=Selector(text=re.text)song_id = url.split('=')[1]song_name = sel.xpath("//em[@class='f-ff2']/text()").extract_first()singer= '&'.join(sel.xpath("//p[@class='des s-fc4']/span/a/text()").extract())songname=singer+'-'+song_namereturn str(song_id),songnamedef download_song(self, songurl, dir_path):'''根据歌曲url,下载mp3文件'''song_id, songname = self.get_songinfo(songurl) # 根据歌曲url得出ID、歌名song_url = 'http://music.163.com/song/media/outer/url?id=%s.mp3'%song_idpath = dir_path + os.sep + songname + '.mp3' # 文件路径all_lists = os.listdir(dir_path)if songname+'.mp3' not in all_lists:request.urlretrieve(song_url, path) # 下载文件def work(self, playlist):songurls = self.get_songurls(playlist) # 输入歌单编号,得到歌单所有歌曲的urlif not os.path.isdir(dir_path):os.mkdir(dir_path)for songurl in tqdm(songurls):try:self.download_song(songurl, dir_path) # 下载歌曲except Exception:continueif __name__ == '__main__':d = wangyiyun()list_id = [66666, 8888888, 55555555] # 所有你想下的歌单for id in list_id:d.work(id)
需要注意两点
- d.work()内写的是歌单的序号, 按如下步骤做, 粘贴到任何可以粘贴的地方, 里面会有个playlistid ,就是那个.
第2点,就是dir_path, 这里写你需要下载的文件夹,自己先创建好.
改完这两处,直接运行就好了.
python3 下载网易云音乐歌单相关推荐
- Python下载网易云音乐歌单
教程(假的) b站链接: https://b23.tv/av93837599 这期视频起源于本人本地歌曲被网易云音乐删掉的悲惨经历,不管你有没有,反正我有,我以前在qq音乐下载了一首肖邦的钢琴协奏曲, ...
- Python数据分析之定制化网易云音乐歌单
最近朋友圈刷疯了的几件事: 圣诞节骗我艾特微信官方戴红帽 老的跟树皮似的骗我晒18岁皂片 明明开挂却骗我自己玩的跳一跳 网易云听歌报告告诉我最爱tfboy 支付宝关键词鄙视我太穷丢它脸 个人特别喜欢听 ...
- 小项目实现:下载网易云某个歌单的全部音乐
第一步:用歌曲地址先实现一首歌的下载 利用: song_url (例如:https://m701.music.126.net/20190719164713/77733e070e7f9c68ac6ea2 ...
- python 爬虫爬取下载网易云音乐歌单的歌曲(需要使用JS的加密方法得出params去获取下载地址)
要点:1.js加密就是麻烦,只能百度寻找了!设计的加密模块binascii.Crypto.base64 2.requests.Session的用法,可以指定headers.cookies 3.可以用s ...
- PHP爬虫音乐,PHP 爬虫———爬取网易云音乐歌单
爬取网易云音乐歌单 PHP + QueryList + Puppeteer + Nodejs 使用 Composer 安装库 如果你之前没有接触过Composer,强烈建议你学习一下.Composer ...
- python音乐可视化_Python数据可视化:网易云音乐歌单
原标题:Python数据可视化:网易云音乐歌单 作者:法纳斯特(本文来自作者投稿,简介见末尾) 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告 ...
- python网络爬虫网易云音乐_手把手教你写网络爬虫(1):网易云音乐歌单
大家好,<手把手教你写网络爬虫>连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意.本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻 ...
- 网易教程python_手把手教你写Python网络爬虫(1):网易云音乐歌单
摘要:从零开始写爬虫,初学者的速成指南! 需要免费获取本文章讲解的视频+源码,关注+转发此文然后私信我回复"音乐"即可领取资料,也欢迎大家和我一起交流学习Python,共同成长 封 ...
- 手把手教你写Python网络爬虫:网易云音乐歌单
介绍 什么是爬虫? 先看看百度百科的定义: 网络爬虫 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper).网络蜘蛛(Web spider),其行为一般是先"爬& ...
最新文章
- sql中union 和 union all的区别
- mysql修改i数据库名_数据库操作之mysqli语句的增删改查0424/14:36
- 自定义工具类:工具类介绍
- 李嘉诚再卖地3800亩,房价要变天了吗?
- SQL Server 自定义函数 返回树结构函数
- C/C++中指针和引用之相关问题研究
- 写程序没思路怎么办?
- 关于FP Spread for Web Forms 2.0.0.0
- SaltStack 二修命令注入和提权漏洞
- Manjaro oh-my-zsh安装配置
- Echart极坐标间隔显示-单类目轴
- matlab仿真的五个步骤,matlab simulink 仿真步骤
- HeadFirstJava——10_数字与静态
- 湖州市技师学院的计算机,湖州技师学院
- 免费国外视频素材网站
- STN网络官方文档复现
- 《认知觉醒》 读书笔记
- Python库collections中的计数器(Counter)
- 【免费or付费】外卖优惠券公众号的申请以及做法有什么不同?
- 隐私全没了?30亿条个人信息被盗,BAT等96家公司全部中招
热门文章
- VLAN间通信比较及VLANIF配置
- antd非必填项的手机号码校验
- STM32 keil仿真点击运行后不能全速运行,点一下运行一下
- Oracle数据库笔记总汇
- Oracle数据库•笔记
- 有些话很幽默、有些话很深邃,经典一贴[转]
- 计算机视觉中的各种卷积(Convolution in Computer Vision)
- MoviePy - 使用 Python 编辑视频
- 《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文阅读及代码实现
- 音视频面试题:什么是秒开视频? 如何去秒开视频?