更多博主开源爬虫教程目录索引
进入网易云
搜索华晨宇或者其他的你喜欢的歌手都可以,这里我以华晨宇为例
这就是我们要爬取的音乐了
查看请求为POST请求,那肯定有表单数据
那么我们发送请求的时候要带上这些参数
import requests
import os
#请求头信息
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36",
}
#表单数据
data = {
"params": "照上面填",
"encSecKey": "照上面填"
}
#发送POST请求
# .json()是将请求得到的json数据转为python中的字典数据,参考图1
response = requests.post(url="https://music.163.com/weapi/cloudsearch/get/web?csrf_token=", headers=headers,data=data).json()
#定义图片保存路径
path = "./音乐"
if not os.path.exists(path): # 判断,是否存在此路径,若不存在则创建,注意这个创建的是文件夹
os.makedirs(path)
#参考图2
#遍历
for data in response["result"]["songs"]:
#参考图3
name = data["name"]
id = data["id"]
#拼接外链
url = "https://api.imjad.cn/cloudmusic/?type=song&id=" + str(id)
response_data = requests.get(url=url)
#参考图4
music_url = response_data.json()["data"][0]["url"]
#有的歌曲下载不了就会抛异常,这时我们直接continue
try:
res = requests.get(url=music_url,headers=headers).content
except:
continue
# 保存图片
with open(path + "/" + name + ".mp3", 'wb')as f: # 以wb方式打开文件,b就是binary的缩写,代表二进制
f.write(res)
小提示:如果小伙伴们想下载自己喜欢歌手的歌曲,只需更换发送POST的请求参数即可,参数找寻方法也教给大家了。
觉得博主写的不错的读者大大们,可以点赞关注和收藏哦,你们的支持是我写作最大的动力!
更多博主开源爬虫教程目录索引