前言
看了下listen 1 网易云精选歌单和复制链接过去的歌单请求的网址是不一样的,暂时只做了网易云精选歌单的爬取,有时间会改进,占坑
如果需要listen 1网易的歌曲单个手动下,很简单的,拉到法二看就可以了
一、法一:
1.1、效果图
1.2、代码
代码直接复制过去运行就可以了,有做异常处理,应该不会报错,报错可以提出来哈,有时间再详细再解说代码
python"># encoding : utf-8
# @author : Phecda
# @IDE : PyCharm
# @project : Code
# @Time : 2020/9/7 23:49
# @CSDN : https://blog.csdn.net/Megrez_Delta
import os
import pprint
import re
import requests
while True:
# strip()去除首尾空格
en = input("请输入listen1中encSeckey的值:".strip())
pa = input("请输入listen1中params的值:".strip())
# https://music.163.com/#/playlist?id=5096680172
url = "https://music.163.com/weapi/v3/song/detail"
data = {
"encSecKey": en,
"params": pa
}
response = requests.post(url=url, data=data)
html = response.content.decode()
# print(html)
pattern = re.compile(r'{"name":".*?","id":\d+', re.S)
# print(pattern)
t = pattern.findall(html)
# print(t)
for s in t:
# print(s)
# print(type(s))
fn = s.split('\"')[3]
# 将不符合windows文件命名规范的文件名用 _ 替换
file_name = re.sub(r'[/\:?*"<>|]+', '_', fn)
file_id = s.split('\"')[6].strip('\:')
# print(file_name)
print('正在读取 {}.mp3'.format(file_name))
# 网易外链下载
file_url = "http://music.163.com/song/media/outer/url?id={}".format(file_id)
file_dir = "E:\PyCharm\Code\Spider\网易云歌曲"
file_path = r"{}/{}.mp3".format(file_dir, file_name)
print(file_name, file_id, file_url)
if not os.path.exists(file_dir):
os.makedirs(file_dir)
with open(file_path, "wb") as mu:
try:
# 伪装请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
req = requests.get(file_url, headers=headers)
# print("正在读取 {}.mp3".format(file_name))
mu.write(req.content)
# print(req)
# 如果req有数据
if req:
print("下载 {}.mp3 成功".format(file_name))
print()
except Exception as e:
print("读取 {}.mp3 失败".format(file_name))
continue
1.3、运行
因为暂时不知道用js解密,所以运行是手动传参过去的,可能有点麻烦
1.进精选歌单首页,按F12打开开发者工具,选到Network模式
2.选择你想要爬取的歌单,点进去
3.找到detail比较大的那个文件,比较小的那个歌曲不全
4.单击detail,找到Hearders滑到最下面的Form Data把enSecKey和params复制过去
如果你没有改路径的话,你的文件在 E:\PyCharm\Code\Spider\网易云歌曲 就能找到
二、法二(手动下载单个歌曲)
2.1 F12进入开发者模式切换到Network下,再单击您想要下载的歌曲播放
2.2 找到后缀名为 .m4a 的文件,双击就可以下载
2.3拖到网易就能打开,或者将打开方式设置为网易云
2.4 确定
2.5 可以看到你双击就会自动用网易云播放了
小福利:
送大家一个下载vip歌曲的网站 http://video.haokanba.top/music/