python爬虫爬取千千音乐

打开千千音乐后,播放一首歌曲,按F12打开开发者模式
点击网络(network),然后ctrl+R刷新,会出现很多异步json文件
在这里插入图片描述
找到这个音乐文件,然后转到这个音乐的链接
在这里插入图片描述
这就是我们需要的音乐了
在这里插入图片描述
但是这个链接并不在网页的html文件里,不可能一个一个去找这个链接,但我经过对比这些链接发现想要直接找到这些链接实在困难。
例如下面的链接,同样的歌曲在不同的时间打开链接都不一样

https://audio04.dmhmusic.com/71_53_T10053095774_128_4_1_0_sdk-cpm/cn/0209/M00/BE/C2/ChR47F17yMGAFECWAEsuYO4hQaw972.mp3?xcode=58a2a02fd5a6a5ef7c3b8bbc5e675ff2644cd4b
https://audio04.dmhmusic.com/71_53_T10053095774_128_4_1_0_sdk-cpm/cn/0209/M00/BE/C2/ChR47F17yMGAFECWAEsuYO4hQaw972.mp3?xcode=f2c8900a8fed3a1a7c3bad603ff8602a1b41f41
https://audio04.dmhmusic.com/71_53_T10046201595_128_4_1_0_sdk-cpm/cn/0208/M00/69/E6/ChR461srcT6ABGYSAC8clDGkoMA259.mp3?xcode=6e6286676a19d2ce7c3bc88d4db783d2f8c6b2a
https://audio04.dmhmusic.com/71_53_T10046201598_128_4_1_0_sdk-cpm/cn/0208/M00/69/E6/ChR461srcVuAZpnhAEWuio_A6IM676.mp3?xcode=065765094adc4b2b7c3bce0334cefb77c5d67aa
https://music.taihe.com/v1/song/tracklink?

但山重水复疑无路,柳暗花明又一村。我发现了藏这个链接的json文件

在这里插入图片描述

在这里插入图片描述
网页里显示的网址是这样的:
https:\/\/audio04.dmhmusic.com\/71_53_T10046201598_128_4_1_0_sdkcpm\/cn\/0208\/M00\/69\/E6\/ChR461srcVuAZpnhAEWuio_A6IM676.mp3xcode=ea685308964753307c3bfb02176044dacea3c6f
这里需要进行一些处理,将这些内容转换为网址

js=json.loads(list)

对比这个json文件的链接,我找到了方向

https://music.taihe.com/v1/song/tracklink?sign=d871af09065141ff9907a1afbe41a806&appid=16073360&TSID=T10046201598&timestamp=1613465041
https://music.taihe.com/v1/song/tracklink?sign=724a9f852e9206d8d9a38083d768c7d4&appid=16073360&TSID=T10046201621&timestamp=1613465327
https://music.taihe.com/v1/song/tracklink?sign=d871af09065141ff9907a1afbe41a806&appid=16073360&TSID=T10046201598&timestamp=1613465041
https://music.taihe.com/v1/song/tracklink?sign=405aab8aa4e7c1118bfbd55525d398e6&appid=16073360&TSID=T10046201595&timestamp=1613465009
https://music.taihe.com/v1/song/tracklink?sign=66b830db419a03149ddd618fa2c6d89d&appid=16073360&TSID=T10045984799&timestamp=1613464973

通过上面的对比,我发现这些链接只有signtimestampTSID是不同的,我又试了几次,发现signtimestamp是干扰设置,随便找一个就能用,那么就只剩TSID这一个变量了。
然后就好说了,只需要批量获取TSID就可以了。

刚开始我发现同一个歌手的歌TSID编号是连着的,但是有些编号是没有歌的,而且只通过循环无法保证下载的歌我都喜欢,所以我放弃了这个方法,但当我打开歌手页面的源代码时,瞅瞅我发现了啥:
在这里插入图片描述
在这里插入图片描述
陈奕迅在千千音乐上所有音乐的TSID都在这里。
歌手页面的网址也非常简单

https://music.taihe.com/artist/A10047719
https://music.taihe.com/artist/A10047646
https://music.taihe.com/artist/A10140865

最终我将代码设计为手动输入歌手ID,然后爬取此歌手所有音乐
并调用os模块,创建以歌手名为文件名的文件,将所有爬取到的音乐保存在里面。
最后是完整代码

此处跳转至完整代码和视频讲解

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
根据提供的引用内容,以下是使用Python进行音乐爬虫的一种方法: 1. 首先,你需要安装所需的Python模块。根据引用,可能需要使用的模块包括requests、beautifulsoup4和lxml。你可以使用以下命令来安装这些模块: ```shell pip install requests beautifulsoup4 lxml ``` 2. 接下来,你需要确定要音乐的目标网站。根据引用,可以使用QQ音乐作为示例。你可以使用requests模块发送HTTP请求来获网页的HTML内容。 3. 使用beautifulsoup4和lxml模块来解析HTML内容,以便提音乐的相关信息,例如歌曲名称、歌手、专辑等。 4. 根据你的需求,你可以选择将音乐下载到本地,或者直接播放音乐。 以下是一个简单的示例代码,演示如何使用Python爬虫QQ音乐的歌曲信息: ```python import requests from bs4 import BeautifulSoup # 目标网页的URL url = 'https://y.qq.com/n/yqq/song/001qvvgF38HVc4.html' # 发送HTTP请求并获网页内容 response = requests.get(url) html = response.text # 使用BeautifulSoup解析HTML内容 soup = BeautifulSoup(html, 'lxml') # 提歌曲名称 song_name = soup.find('h1', class_='data__name_txt').text.strip() # 提歌手 singer = soup.find('span', class_='data__singer_txt').text.strip() # 提专辑 album = soup.find('a', class_='data__album_txt').text.strip() # 打印歌曲信息 print('歌曲名称:', song_name) print('歌手:', singer) print('专辑:', album) ``` 请注意,这只是一个简单的示例,你可以根据自己的需求进行更复杂的音乐爬虫操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值