首页 > 其他分享 >获取VIP歌曲

获取VIP歌曲

时间:2022-09-19 22:33:31浏览次数:52  
标签:www cn url kuwo 获取 VIP 歌曲 print rid

"""
分析需求
1,确定目标网址
2,获取目标网址的所有数据
3,筛选我们想要的数据
4,下载歌曲保存
"""
import os

import requests  # 模拟浏览器浏览网页  第三方库  工具包

singer = input("请输入歌手姓名:")
num = input("请输入你想下载的页数:")
# 目标网址
url = f"https://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={singer}&pn={num}&rn=30&httpsStatus=1&reqId=0e333970-f90a-11ec-a02d-9b5117697bc1"
print(url)
# 伪装一下  请求头
headers = {
    # 代理信息  模拟浏览器
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
    # 令牌  钥匙
    "csrf": "0G1J21RT96FN",
    # 打开哪个门
    "Cookie": "kw_token=0G1J21RT96FN",
    # 域名
    "Host": "www.kuwo.cn",
    # 防盗链  从哪里来的
    "Referer": f"https://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6"
}
# 模拟浏览器发送请求
response = requests.get(url, headers=headers).json()
print(response)
data = response["data"]["list"]

# print(data)
for i in data:
    rid = i["rid"]
    name = i["name"]
    print(rid, name)
    # 新目标网址
    # new_url = f'https://www.kuwo.cn/api/v1/www/music/playUrl?mid={rid}&type=music&httpsStatus=1&reqId=5085a771-f902-11ec-8529-cdb133e96ad8'
    new_url = f'https://apis.jxcxin.cn/api/kuwo?id={rid}&type=json'
    # new_url = "https://kuwo.cn/url?format=mp3&rid=" + str(rid) + "&response=url&type=convert_url3&br=128kmp3&from=web&t=1604320123221&httpsStatus=1&reqId=f202c851-1d06-11eb-91ba-83cb90e3e81e"
    # #请求新网址
    res = requests.get(new_url).json()
    # print(res)
    # print(res["url"])
    # 下载歌曲  最后一次请求
    r = requests.get(res["url"]).content
    # 路径
    path = os.path.join(os.path.expanduser("~"), 'Desktop') + os.sep + name + ".mp3"
    # 保存 文件操作 以二进制写入
    with open(path, "wb") as f:
        f.write(r)
        print("正在下载", name)

标签:www,cn,url,kuwo,获取,VIP,歌曲,print,rid
From: https://www.cnblogs.com/lengyingmofeng/p/16709364.html

相关文章

  • java 获取用户输入
    /*如何从键盘获取不同类型的变量:需要使用Scanner类1.导包:importjava.util.Scanner;2.Scanner的实例化:Scannerscan=newScanner(System.in);3.调用Scanner类的相关......
  • Python获取以前的日期或以后的日期
    importdatetimefromdateutil.relativedeltaimportrelativedeltat=datetime.datetime.now()#当前日期d=datetime.date.today()print(d)#1天前d1=d-rel......
  • Python获取UTC时间
    fromdatetimeimportdatetime,timedeltanow_time=datetime.now()utc_time=now_time-timedelta(hours=8)#减去8小时utc_time=utc_time.strftime("%Y-%m-%......
  • 集成部署 2-jenkins获取git轮询查询
    一:配置  二:构建任务配置中配置git     三:轮询查询最后保存     看git拉取本地成功  ......
  • Vue3中使用ref获取元素节点
    本文介绍在vue3的setup中使用compositionAPI获取元素节点的几种方法:静态绑定仅仅需要申明一个ref的引用,用来保存元素,在template中,不必bind引用(:ref="domRef"),只需要声......
  • 【Azure 事件中心】Flink消费Event Hub中事件, 使用Azure默认示例代码,始终获取新产生
    问题描述根据AzureEventHub示例文档,[将ApacheFlink与适用于ApacheKafka的Azure事件中心配合使用],配置好 consumer.config文件后,为什么不能自动消费EventHub......
  • Sql游标 循环获取表数据
    DECLARE@ItemNoVARCHAR(50)--定义接收参数DECLAREmycursorCURSORFOR SELECTItemNoFROM#TestTableWHEREItemNo='A10086'--建立游标数据源OPENmycursor--打......
  • hutool日期获取总结
    //获取当前日期DateUtil.date()//今年最后时间DateUtil.endOfYear(DateUtil.date())//今天DateUtil.parse(DateUtil.date(),"yyyy-MM-dd")//获取当前时间字符串,yyyy-M......
  • Java获取本地IP(Linux和windows)
    在Linux系统和windows系统使用java获取本地IP的方法是不同的,这就导致了生产环境与实际运用环境不同而导致代码出错。1packagecom.cfcc.cfcs.common.utils;23imp......
  • 获取一个月内有的日期
    指定格式为“yyyy-MM-dd”以当前月的某一天为基础点击查看代码@Testpublicvoidtest4(){LocalDatestart=LocalDate.now().with(TemporalAdjuster......