高考完一直想写点程序,但发现自己初中学的 Python 都忘光了,于是又重新学了一下。
有一天用以前看到的方法下载网易云上面的音乐的时候,突发奇想,想写一个自动化脚本,这样就可以全自动下载音乐了 {:301_997:}
详细的下载方法网上能够找到 https://www.bilibili.com/video/BV1Te4y1F7br/,这里就不再赘述了,想理解原理的朋友可以看一下。
这个自动化脚本主要是基于 playwright 库编写的,通过模拟浏览器操作来下载,可以做到能试听的音乐就可以下载。
大体过程可以分为三步:
1、向用户发送登录请求,用户扫码登录网易云音乐后保存登录信息,下一次使用可以直接加载。
2、进入歌曲详情页时,模拟点击播放按钮
3、拦截传输的 m4a 文件并下载
使用指南:
1、先安装 playwright 库及其依赖的浏览器内核,可通过如下命令安装:
pip install playwright -i https://pypi.tuna.tsinghua.edu.cn/simple
playwright install
2、新建一个文件夹,将 first.py 和 main.py 两个文件放在里面,先运行 first.py,并按照页面上的指示进行扫码登陆(如果有些卡顿的话可以退出重进一下)
3、运行 main.py,将想要下载的音乐的详情页地址复制下来,粘贴到程序中,按回车就可以自动下载了。
下面直接上代码:
1、first.py 文件代码:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
# 打开网易云首页
page.goto("https://music.163.com")
page.get_by_role("link", name="登录").click()
# 模拟点击 "登录"
page.wait_for_timeout(1000)
print("请在浏览器中扫码登录...")
# 等待手动扫码登录完成
input("登录成功后,回到这里按回车...")
# 保存完整登录状态
context.storage_state(path="login.json")
print("登录状态已保存到 login.json")
browser.close()
2、main.py 代码
import re
from playwright.sync_api import Playwright, sync_playwright
from urllib.request import urlretrieve
url_list = []
name_list = []
# 通过响应代码找出下载链接
def add_list(response):
if response.status == 206 :
url_list.append(response.url)
# 下载函数
def download(playwright: Playwright,url1):
browser = playwright.chromium.launch()
context = browser.new_context(storage_state="login.json") # 加载登录信息
page = context.new_page()
page.on("response", add_list)
page.goto(url1)
# 模拟点击播放按钮
page.locator("iframe[name="contentFrame"]").content_frame.get_by_role("link", name="播放", exact=True).click()
page.wait_for_timeout(1000) # 等待页面加载,可适当延长或缩短
name_list.append(page.title())
save_path = name_list[0] + ".m4a"
urlretrieve(url_list[0], save_path) # 下载音乐
print("%s 下载完成" % save_path)
# 清空重置列表
name_list.clear()
url_list.clear()
context.close()
with sync_playwright() as playwright:
urls = input("请输入下载链接(多个链接可用空格隔开):").split()
for each in urls:
download(playwright,each)
print("音频文件均保存在代码文件所在文件夹中")
代码文件下载地址:https://wwbcy.lanzouu.com/iVXly3wjt17c
GitHub 开源地址:https://github.com/yunlongzhuhuo/CloudMusic-Downloader/
效果演示:


最后再说说编写代码过程中的心得吧
我发现现在 AI 真的是特别强大,“将登陆状态保存”这个思路就是 AI 启发我的,并且帮我写了 first.py 文件的一部分代码。
另外,在编写自动化测试脚本的过程中,可以直接调用 playwright 中的 codegen 功能,直接根据操作生成代码,大大提升代码编写效率。
最后希望大家多多评分和发表跟帖,谢谢大家!
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。本站所有信息均来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权不妥之处请致信 E-mail:admin@kongyu.xin 我们会积极处理。敬请谅解




![破解版[国产互动SLG/真人/动态] 这个面试有点硬2 东洋篇 The Hardest Interview2 V1.11 [麻豆出品] 官方中文版 [20.50G]-空域资源网](https://pan4.649408.xyz/p/image/2025-10-01/913b184b59aaaf4c9c86b24331f4d2bc.webp)
![DL9月新作【互动SLG/NTL/人妻/动态】邻居的人妻2-在丈夫身旁忘我地中出性爱(近所の人妻2-旦那の隣で我を忘れてる中出しSEX)官中步兵版+存档 [4.30G]-空域资源网](https://pan4.649408.xyz/p/image/2025-09-06/df11b2bad9187e7e973f46308c17d789.jpg)







暂无评论内容