python-酷我音乐(爬虫)

完整代码

import requests
import json
import os

def music_download():
kw = input("请输入音乐名称:")
# 请求头
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 Edg/84.0.522.63",
"Cookie":"_ga=GA1.2.1083049585.1590317697; _gid=GA1.2.2053211683.1598526974; _gat=1; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1597491567,1598094297,1598096480,1598526974; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1598526974; kw_token=HYZQI4KPK3P",
"Referer": "http://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6",
"csrf": "HYZQI4KPK3P",
}
# 参数列表
params = {
"key": kw,
# 页数
"pn": "1",
# 音乐数
"rn": "10",
"httpsStatus": "1",
"reqId": "cc337fa0-e856-11ea-8e2d-ab61b365fb50",
}
# 创建列表,后面下载需要
music_list = []
url = "http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?"
res = requests.get(url = url,headers = headers,params = params)
res.encoding = "utf-8"
text = res.text
# 转成json数据
json_list = json.loads(text)
# 发现data中list是存主要数据的地方
datapack = json_list["data"]["list"]
# 遍历拿到所需要的数据,音乐名称,歌手,id...
for i in datapack:
# 音乐名
music_name = i["name"]
# 歌手
music_singer = i["artist"]
# 待会需要的id先拿到
rid = i["rid"]
# 随便试听拿到一个音乐的接口,这是的rid就用得上了
api_music = "http://www.kuwo.cn/url?format=mp3&rid={}&response=url&type=convert_url3" \
"&br=128kmp3&from=web&t=1598528574799&httpsStatus=1" \
"&reqId=72259df1-e85a-11ea-a367-b5a64c5660e5".format(rid)
api_res = requests.get(url = api_music)
# 打印发现真实的url确实在里面
# print(api_res.text)
music_url = json.loads(api_res.text)["url"]
# 大功告成,试试效果
print(music_name)
print(music_singer)
print(music_url)
# 把数据存到字典方便下载时查找
music_dict = {}
music_dict["name"] = music_name
music_dict["url"] = music_url
music_dict["singer"] = music_singer
music_list.append(music_dict)
# 看看真实数据数量
print(len(music_list))
# 下载
xiazai = input("输入音乐名称:")
# 下载位置
root = 'E://下载的music//'
for i in range(len(music_list)):
try:
if xiazai == music_list[i]["name"]:
# 创建文件夹
if not os.path.exists(root):
os.mkdir(root)
# 拿到字典中对应的音乐url数据
music_content = requests.get(url = music_list[i]["url"]).content
with open(root + "{}({}).mp3".format(music_list[i]['name'],music_list[i]['singer']),"wb") as f:
f.write(music_content)
print("下载成功")
else:
print("此歌名不在你所搜索的音乐里!")
continue
except:
print("下载失败")
if __name__ == "__main__":
music_download()

运行结果

python-酷我音乐(爬虫)

2020.9.2更新

略微改动,如图。
如果输入名字时对应搜索的音乐存在重复名字的情况,会直到所有重名的音乐下载完毕才退出程序。

python-酷我音乐(爬虫)
python-酷我音乐(爬虫)

**

注:请勿用于商业用途

**

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

python-酷我音乐(爬虫)

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » python-酷我音乐(爬虫)
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏