歌曲网站,指定 url, 爬取 mp3 和 lyric

本文讲述了如何从音乐网站通过URL获取歌曲ID,进而获取歌曲名称、歌词和资源路径,最后下载歌曲的过程。由于部分网站歌曲信息动态加载,需调整策略以正确提取所需数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面这篇介绍了,给歌曲名,搜索并下载歌曲

歌曲网站,爬取 mp3 和 lyric

本篇介绍,给歌曲网站的歌曲资源路径,下载歌曲

主要不同点,

  • 给歌曲名,歌曲名就到手了,需要搜索歌曲 ID,

通过歌曲 ID,拿歌词、歌曲资源路径,最终下载歌曲资源

  • 给出歌曲的 url, 该歌曲的 ID 就知道了,需要找出歌曲名称,

有歌曲 ID,拿歌词、歌曲资源路径,和歌曲资源


从 url 拿 ID
        info=songUrl.split("=")
        song_id=info[1]
用 ID 拿歌曲名
        songInfoUrl = "http://music.x.com/api/song/detail/?id={}&ids=%5B{}%5D".format(song_id, song_id)
        songInfoResponse = self.crawler.session.get(songInfoUrl)
        songInfoJSON = songInfoResponse.json()
        song_name = songInfoJSON['songs'][0]["name"]

原本的思路是,拿歌曲的 web url, 下载整个网页,

从网页中找出歌曲 title

不成

因为一些音乐网站,歌曲信息是后续加载的

用 ID 拿歌词

        csrf = ''
        lyricUrl = 'http://music.x.com/api/song/lyric/?id={}&lv=-1&csrf_token={}'.format(song_id, csrf)
        lyricResponse = self.session.get(lyricUrl)
        lyricJSON = lyricResponse.json()
        lyrics = lyricJSON['lrc']['lyric'].split("\n")
用 ID 拿歌曲资源路径
        url = 'http://music.x.com/weapi/song/enhance/player/url?csrf_token='
        csrf = ''
        params = {'ids': [song_id], 'br': bit_rate, 'csrf_token': csrf}
        result = self.post_request(url, params)

        # 歌曲下载地址
        song_url = result['data'][0]['url']

下载歌曲 ( 略 )

github repo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值