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 爬取音乐相关推荐

  1. python爬取音乐排行_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  2. python爬取音乐_利用Python对网易云音乐进行爬取!无所不爬的爬虫啊!

    今天,我们利用Python 中的selenium爬取网易云音乐中林俊杰<将故事写成我们>的评论,具体界面如下: 私信小编01 获取数十套PDF!爬虫 web都有的呢! 具体代码如下: #此 ...

  3. python爬取音乐网站排行榜_通过Python轻松访问音乐网站歌曲,python,爬取

    准备工作: 1.在已经安装python开发环境的情况下,还需安装第三方库:requests,安装教程可以参考: 2.对目标网站进行分析,获取目标文件链接 目标文件:第一页中的20个音乐文件 获取到歌曲 ...

  4. python爬取音乐专辑时间_Python爬取披头士乐队历年专辑封面-网易云音乐

    运行环境 我的运行环境如下:系统版本 Windows10. Python版本 Python3.5,推荐使用Anaconda 这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问 ...

  5. python爬取音乐并保存_python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中

    爬取TOP500的音乐信息,包括排名情况.歌曲名.歌曲时间. 网页版酷狗不能手动翻页进行下一步的浏览,仔细观察第一页的URL: 这里尝试将1改为2,再进行浏览,恰好是第二页的信息,再改为3,恰好是第三 ...

  6. python爬取音乐_Python现学现用xpath爬取豆瓣音乐

    昨天说了Requests库,今天来上手爬虫了. 爬虫的抓取方式有好几种,正则表达式,Lxml(xpath)与BeautifulSoup,我在网上查了一下资料,了解到三者之间的使用难度与性能 三种爬虫方 ...

  7. python爬取音乐并保存的格式_python爬取QQ音乐歌单歌曲保存到本地,json解析

    序:python强大的功能,可以爬取网上的某些信息,本次主要是通过爬歌单信息熟悉下python基础. 用到知识点: 1.python3.urllib.request.openurl 2.json (j ...

  8. python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)

    [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...

  9. python爬取音乐并保存_python爬取QQ音乐歌单歌曲保存到本地,json解析

    序:python强大的功能,可以爬取网上的某些信息,本次主要是通过爬歌单信息熟悉下python基础. 用到知识点: 1.python3.urllib.request.openurl 2.json (j ...

  10. python爬取音乐并保存_Python爬取网易云音乐上评论火爆的歌曲

    前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论.但是,网易云音乐并没有提供热评排行 ...

最新文章

  1. 2021年大数据HBase(九):Apache Phoenix的安装
  2. 五 Android Studio打包Eegret App (包名和签名,打出正式包)
  3. A potentially dangerous Request.Form value was detected from the client
  4. linux c 查看 结构体 宏 函数 关键字定义
  5. Servlet RequestDispatcher需要注意的情况
  6. 传iPhone 4S下月初开卖
  7. MySQL的进阶实战篇
  8. http:(1):http简介
  9. 一级计算机2016难度,2016年计算机等级一级考前必看
  10. 必须掌握的Java基础知识(二)
  11. String、StringBuffer 与StringBuilder
  12. uploadify php 重命名,Uploadify_THINKPHP配置说明
  13. VS2019完全卸载教程
  14. 学员管理系统(面向对象版)
  15. python 中在字符串前面加上b,u,r的含义
  16. 算法 64式 7、搜索算法整理_第1部分_1到15题
  17. Python编写程序,实现对输入字符串的大小写字母翻转(即大写变小写、小写变大写)操作
  18. MySQL死锁问题如何分析锁表后查看死锁和去除死锁快速解决方法
  19. HTML5新特性history
  20. Windows系统安装了虚拟机后,网络无法修复且无网络连接如何修复?跟随作者一起来寻找问题并解决吧

热门文章

  1. 电子邮件协议(SMTP协议,POP3协议)
  2. asp程序的mdb数据库转mysql教程(少走弯路)思路
  3. 阿里linux内核月报201705
  4. 科海思吸附铜树脂的简介
  5. 02矩阵01 —— 基本矩阵 : 对角矩阵、方幂、数量矩阵、转置矩阵、对称矩阵、逆矩阵、奇异矩阵、三角矩阵
  6. 让我们看了泪流满面的经典台词
  7. 2009年中国互联网安全最具影响十大事件
  8. 仪表三维设计需求分析
  9. 计算机培训微课设计与实现,微课制作相关软件的实操培训
  10. cscope精准查看linux函数调用,linux下使用 vim + cscope 查看代码