前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~

在面对想听的ge没得权时,正常人一般的操作是百度一下又或者直接找朋友借

但是程序员就不一样了~直接展示一手如何用Python 实现通过输入ge手名或ge名一秒下载 ~


目录

    • 前言
    • 第三方库:
    • 开发环境:
      • 如果安装python第三方模块:
      • 如何配置pycharm里面的python解释器” />

        下载ge的功能

        实现代码:

        1. 发送请求

        2. 获取数据

        3. 解析数据 想要的内容提取出来

        4. 保存数据

        原理:

        模拟 客户端 向 服务器 发送请求

        代码

        导入模块

        import requests          # 第三方模块 额外安装的import prettytable as pt # 第三方模块 打印的内容 变好看

        Python版本: 越新 新的功能也就越多 但是可能不稳定 3.9以上

        太老了的版本 3.5 以下

        key = input('搜索音乐/歌手:')rn = input('请输入歌曲数量:')pn = input('请输入页码:')

        f 是往字符串里面传变量 类似于format

        因为代码里有链接,不给过的,所以我只能截个图展示一下,你们可以根据下方图片添加完整哦~

        或点击

            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}

        1. 发送请求

        get/post

        response = requests.get(url=url, headers=headers)

        2. 获取数据

        json_data = response.json()

        3. 解析数据

        怎么取?

        字典 数据容器

        存储数据 快速的定位到数据位置

        我可以通过:前面的内容快速定位到:后面的内容

        data_list = json_data['data']['list']tb = pt.PrettyTable()   # 新建了一个表格count = 0               # 定义一个序号tb.field_names = ['序号', '歌曲名称', '歌手名', '音乐链接']info_list = []# [{字典}, {}, {}, {}]for data in data_list:    name = data['name']    artist = data['artist']    rid = data['rid']

        print(rid, name, artist)

        往表格里面添加数据

        代码操作 大家 只可以用于学习, 切勿商用

            music_url = requests.get(info_url).json()['data']['url']    tb.add_row([count, name, artist, music_url])    info_list.append([name, artist, music_url])    count += 1print(tb)# 死循环while True:    index = int(input("请输入你要下载的歌曲序号(-1退出):"))    if index == -1:        break    name = info_list[index][0]    artist = info_list[index][1]    music_url = info_list[index][2]    # 音频 / 视频 / 图片 二进制的形式    music_data = requests.get(music_url).content

        4. 保存数据

            with open(f'music/{name}-{artist}.mp3', mode='wb') as f:        f.write(music_data)        print(f'{name}-{artist} 下载成功!!!')

        效果

        我们可以通过输入ge名或者ge手名来搜索

        先试试Eason的,来个一页,十首ge~

        这时候要下载哪首直接就输入对应序号即可

        这里我选择了0号孤勇者

        2首网抑是听不了的,一首是要付费的

        文章看不懂,我专门录了对应的视频讲解,本文只是大致展示,完整代码和视频教程点击下方蓝字

        点击