喜爱夜蒲 教你怎样使Python爬取酷我在线音乐

美足交
你的位置:美足交 > 乱伦故事 > 喜爱夜蒲 教你怎样使Python爬取酷我在线音乐
喜爱夜蒲 教你怎样使Python爬取酷我在线音乐
发布日期:2024-09-27 15:58    点击次数:149

喜爱夜蒲 教你怎样使Python爬取酷我在线音乐

引子

写这篇博客的初志是加深我方对汇注苦求发送和反映的结伴,仅供学习使用喜爱夜蒲,请勿用于违法用途!漂后爬虫,从我作念起。底下干涉正题。

获得歌曲信息列表

在酷我的搜索框中输入要道词 aiko,回车之后不错看到系数和 aiko 联系的歌曲。绽放开辟者模式,在汇注面板下按下 ctrl + f,搜索 二东谈主,不错找到反映成果中包含 二东谈主 的苦求,这个苦求即是用来获得歌曲信息列表的。

苦求参数分析

苦求的具身体式如下图所示,不错看到苦求旅途为 ,苦求参数包括:

key: 搜索要道词,此处为 aiko pn: 页码,page number 的缩写,此处为 1 rn: 每页条款数,应该是 row number 的缩写,默许为 30 httpsStatus:https 的景况?嗅觉没啥大用,看了源代码内部是径直写死 t.url = t.url + "?reqId=".concat(n, "&httpsStatus=1") reqId:苦求标记,刷新页面之后值会发生转变,不知谈有啥用,待会儿模拟苦求的时辰试着不带上他会怎样样

绽放 Apifox(天然 postman 也行),新建一个接口,把苦求旅途和参数树立为下图所示的口头,为了让反映成果大略点,这里把每页的条款数树立为 1 而非默许的 30:

在莫得树立非常苦求头的情况下发个苦求试试,发现 403 Forbidden 了,emmmmm,应该是防盗链所致:

色老大导航

不错看到浏览器发出的苦求的苦求头中有树立 Referer 字段,把它加上,应该不会再报错了吧:

此次景况码为 200,然而莫得收到任何数据,success 为 false 证实苦求失败了,message 指明了失败原因是短缺 CSRF token。问题不大,接着把浏览器发出的苦求中的 csrf 加到 Apifox 苦求头中,再发苦求,照旧报错 CSRF token Invalid!。算了,照旧老老真诚把 Cookie 也加上吧,但也不是沿途加上,只加 kw_token=CCISYM2HV96 部分,因为 Cookie 内部唯有这个字段和 token 商酌系且它的值和 csrf 换取。

在源代码面板按下 ctrl + shift + f,搜索一下 csrf,不错看到 csrf 底本即是来自 Object(h.b)("kw_token"),这个函数用来取出 document.cookie 中的 kw_token 字段值。至于 Cookie 中的 kw_token 怎样计较得到的,那即是劳动器的事情了,我们只管 CV 操作即可。

准备好参数和苦求头,从头发送苦求,不错得到念念要的数据。若是去掉 reqId 参数,也不错拿到数据,然而会有稍稍的不同,这里就不贴出来了:

苦求代码

反映成果的 data 字段中有许多东西,这里只索取需要的部分。在索取之前先来界说一下歌曲信息实体类,这么在其他函数中要一首歌曲的信息时只消把实体类的实例传入即可。

上述代码露出界说了实体类的基类,况兼重写了 __getitem__ 和 __setitem__ 魔法步骤,这么我们不错像探听字典一样来探听实体类对象的属性。接着让歌曲信息实体类采用了实体类基类,况兼使用 @dataclass 紧闭器,这是 python 3.7 引入的新特质,使用它紧闭之后的实体类无需杀青构造函数、__str__等常用函数,python 会帮我们自动生成。

在发送苦求的历程中可能会碰到各式相当,若是在代码内部写 try except 语句会显得很乱,这里相似不错用紧闭器来惩办这个问题。

底下是发送获得歌曲信息苦求的代码,使用 exception_handler 紧闭了 getSongInfos 步骤,这么发生相那时会打印相当信息并复返默许值:

获得歌曲下载集会 免费歌曲

诚然我们杀青了搜索歌曲的功能,然而没拿到每一首歌的播放地址,也就没目标把歌曲下载下来。我们先来播放一首不收费的歌曲试试。不错看到浏览器发送了一个获得播放集会的苦求,旅途为 ,有两个需要热心的参数:

mid:音乐 Id,此处的值为 941583,和页面 url 中的编号一致,由于我们是通过点击搜索成果页面中 二东谈主 跳转过来的,而 二东谈主 这条成果亦然动态加载出来的,超集会中的 Id 细目也来自于上一节中反映成果的某个字段。二东谈主 是第四笔纪录,通过对比不错发现 data.list[3].rid 即是 mid; type:音乐类型?此处的值为 music,发送苦求的时辰也树立为 music 即可

在 Apifox 中新建一个获得歌曲播放地址的苦求,如下所示,发现不错告成拿到播放地址:

付费歌曲

当今换一首歌,比如 aiko - 横颜,点击歌曲页面上的播放按钮时会弹出要求在客户端中付费收听的对话框。径直发送苦求,反映成果会是底下这个口头,景况码为 403:

其实酷我在 2021 年 9 月份的时辰换过获得播放地址的接口,那时辰的苦求接口为 ,援手以下几个参数:

format: 在线音乐的时势,不错是 mp3 type: 和当今的接口中的 type 参数一样,然而值为 convert_url3 rid: 音乐 Id,和 mid 一样 br: 在线音乐的比特率,越大则音质越高,可选的有 128kmp3、 192kmp3 和 320kmp3

这个接口不论是付费音乐照旧免费音乐齐不错用。若是将当今这个接口的 type 参数的值换成 convert_url3,苦求成果如下所示,证实告成了:

苦求代码

底下是获得在线音乐播放集会的代码,只需调用 downloadSong 函数并把爬取到的歌曲传入就能完成歌曲的下载:

跋文

除了获得歌曲的审视信息和播放地址外,我们还能拿到歌词、歌手信息等,步骤是肖似的,在我的 Groove 中提供了在线歌曲的功能,一部分接口即是来自酷我,还有一些来自酷狗和网易云,爬虫的代码在 app/common/crawler 目次下,心爱的话不错给个 star 哦,以上~~

以上即是教你怎样使Python爬取酷我在线音乐的审视骨子喜爱夜蒲,更多对于Python爬取音乐的贵寓请热心剧本之家其它联系著述!

您可能感敬爱敬爱的著述: python爬取酷狗音乐Top500榜单 python爬取网易云音乐热歌榜实例代码 Python怎样爬取qq音乐歌词到腹地 python爬取酷狗音乐名次榜 python爬取网易云音乐驳斥 Python爬取网易云音乐热点驳斥

上一篇:文爱 x PC酷我音乐v9.2.0.0
下一篇:123性爱网 「一东谈主之下等四季高清1080P...每周捏续更新】11.19更新至10」

Powered by 美足交 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024 版权所有