龙空技术网

python爬虫实战之—爬取网易云音乐

易学智能 111

前言:

目前姐妹们对“网易云用户听歌记录爬取”大致比较讲究,看官们都想要分析一些“网易云用户听歌记录爬取”的相关资讯。那么小编同时在网摘上搜集了一些对于“网易云用户听歌记录爬取””的相关内容,希望大家能喜欢,大家一起来了解一下吧!

对于喜欢听歌的朋友来说批量下载歌曲往往是一件很头疼的事,一次次打开歌曲,然后机械搬的点击下载,是不是想想都觉得不能忍呢~尤其是作为一名程序猿来说,如果你还在用两根手指做着这么低效率的工作,你是不是太out了呢?

今天给大家带来一款python制作的神器,专用于批量下载网易云音乐的歌单,操作非常之简单!

运行环境:Python3

相关模块:requests,bs4,tkinter,urllib

使用方式:

1. 将代码保存为python文件并运行

2. 在弹出的框中填入你要下载的歌单的url并点击开始下载如下

图2

3. 下载完成

图3

现在进入教学时间,已经给各位看官老爷备好了注释,有感兴趣的朋友可以了解一下:

第一部分:导入相关库

图4

第二部分:设计图形界面

图5

第三部分:写爬虫下载歌单中的歌曲

图6

图7

最后给大家分享一下整体代码,可以开心的下载歌曲去了,我先撤啦~

from tkinter import *import requestsfrom bs4 import BeautifulSoupfrom urllib.request import urlretrieve#下载方法def download(): #通过输入控件获取url url = entry.get() #去除utl中的#号 new_url = url.replace('/#', '') #设置header header = { 'Host': 'music.163.com',# 指定请求的服务器的域名和端口号 'Referer': '',#先前网页的地址,当前请求网页紧随其后,即来路 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0' #User-Agent的内容包含发出请求的用户信息 } #发送get请求 res = requests.get(new_url, headers=header).text #BeautifulSoup是用来从HTML或XML中提取数据的Python库。 对于不具备良好格式的 HTML 内容,lxml 提供了两个有用的包:lxml.html 模块和 BeautifulSoup 解析器。 r = BeautifulSoup(res, "html.parser") music_dict = {} #提取歌单 result = r.find('ul', {'class', 'f-hide'}).find_all('a') for music in result: print(music) music_id = music.get('href').strip('/song?id=') music_name = music.text #将每首歌的id存入music_dict music_dict[music_id] = music_name #按顺序下载每首歌 for song_id in music_dict: song_url = "" % song_id#下载路径 path = "D:\论文任务\音乐/%s.mp3" % music_dict[song_id] # 添加数据 text.insert(END, "正在下载:%s" % music_dict[song_id]) text.see(END) text.update() #urlretrieve用于下载资源到本地 urlretrieve(song_url, path)#Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 ,Tkinter用于python开发图形界面root = Tk()#名称root.title("网易云音乐下载器")#尺寸设定root.geometry("550x400+550+230")#设定标签的内容以及字体风格,大小label = Label(root, text="歌单URL", font=('宋体', 15))label.grid()#Entry输入控件;用于显示简单的文本内容entry = Entry(root, font=('微软雅黑', 20))entry.grid(row=0, column=1)text = Listbox(root, font=("微软雅黑", 15), width=45, height=10)text.grid(row=1, columnspan=2)#设置按钮的字体,内容,大小,以及按钮背后的功能button = Button(root, text="开始下载", font=("微软雅黑", 15), command=download)button.grid(row=2, column=0, sticky=W)button1 = Button(root, text="退出", font=("微软雅黑", 15), command=root.quit)button1.grid(row=2, column=1, sticky=E)mainloop()

本文代码来源:

友情提示:如有付费下载音乐,请尊重音乐版权!付费下载

作者:欧阳峰

申明:本文为易学智能原创内容,如需转载请私信

欢迎关注“易学智能”头条号,评论区有问必答

提在线AI算力平台和学习平台

标签: #网易云用户听歌记录爬取