• 【爬虫】单首音乐的爬取(附源码)


    以某狗音乐为例

    import requests
    import re
    import time
    import hashlib
    
    def GetResponse(url):
    
        # 模拟浏览器
        headers ={
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0'
        }
        # 发送请求
        response = requests.get(url=url,headers=headers)
        # 返回内容
        return response
    
    def GetInfo():
        # 请求网址
        link='https://wwwapi.kugou.com/play/songinfo?srcappid=2919&clientver=20000&clienttime=1709645100257&mid=99fdc9044912dc3185ee58da1a9f87d0&uuid=99fdc9044912dc3185ee58da1a9f87d0&dfid=3exBpJ2WlTHO4N287r0necyx&appid=1014&platid=4&encode_album_audio_id=9oevti38&token=2544e791bc15f255e8737748178f76680a2205d03c2259e2fc4892e9aa500045&userid=2195647882&signature=a6efee3c478d7a625553ab35eb149df9'
        JsonData = GetResponse(url=link).json()
        # 提取歌曲链接
        play_url = JsonData['data']['play_url']
        # 提取歌名
        audio_name = JsonData['data']['audio_name']
        # 获取数据
        return audio_name,play_url
    
    
    def Save(title,url):
        # 对歌曲链接发送请求
        music_data = GetResponse(url=url).content
        # wb 保存模式
        with open("D:/music/{}.mp3".format(title), mode='wb') as f:
            f.write(music_data)
    
    
    if __name__ == '__main__':
        audio_name,play_url = GetInfo()
        Save(audio_name,play_url)
        print(audio_name,'保存成功!!')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    修改User-Agent,link,保存地址即可。

    详细步骤截图:
    点开播放某首音乐
    在这里插入图片描述
    复制搜索
    在这里插入图片描述

    找到songInfo,link就是请求URL
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Hbase简介
    Java内存模型和 JVM 内存运行时
    编译技巧汇总
    c语言实现数据结构---堆
    验证的挑战
    后端 | 青训营笔记
    分析并实现Android中的MVC、MVP架构模式
    torch.nn.DataParallel类
    详解MAC帧、ARP、DNS、ICMP协议
    Linux学习之平均负载的概念和查看方法
  • 原文地址:https://blog.csdn.net/mucheng771/article/details/136491319