网易云反爬虫,中国新说唱

本文介绍了如何分析网易云音乐的反爬虫机制,涉及AES和RSA加密。通过理解js代码,实现了加密参数的Python翻译,并揭示了搜索歌曲和获取歌词的接口。最后,提出了开始编写爬虫的准备步骤。

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

这篇文章是之前在公众号写的

登录https://music.163.com/ 网易云音乐搜索新说唱,打开Chrome的开发工具工具选择Network并重新加载页面,找到与评论数据相关的请求即name为

web?csrf_token=的POST请求,如下图所示
在这里插入图片描述
查看该请求的headers我们发现formData包含了两个参数:params、encSecKey。显然这两个参数是经过js加密的,这就是网易云反爬虫的一种策略。如下图:
在这里插入图片描述
我们再来看一下请求的Initiator有个core 2ab1b2b…js。因此我们需要分析一下这个js,找出formData加密的规则即可。
在这里插入图片描述
将js文件进行格式化,全局搜索params或者encSecKey
在这里插入图片描述
params和encSecKey是从bSC8u这个对象中取的

k8c.cE9v({
 params: bSC8u.encText,
 encSecKey: bSC8u.encSecKey
})

而这个对象是由windows.asrsea() 这个方法获得的,定位到该方法。如下图所示:
在这里插入图片描述

通过分析代码我们发现 d函数才是最终的出口。分析d函数:
1、通过 a(16) 函数生成一个长度为16的随机字符串
2、encText这个参数通过两次调用 b(a,b) 函数完成,这个函数的作用为AES加密
3、调用 c(i, e, f)得到encSecKey,这个函数的作用是进行RSA加密

AES加密

AES(Advanced Encryption Standard)对称加密算法是一种高级数据加密标准,是美国联邦政府采用的一种区块加密标准,可有效抵制针对DES的攻击算法。特点:密钥建立时间短、灵敏性好、内存需求低、安全性高。

RSA加密

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。

通过上面分析,除了 i 是一个随机字符串,我们只需要知道d、e、f、g这四个参数就可以构造请求进行后续操作了。接下来我们进行js断点调试。
在这里插入图片描述

首先我们先实现函数a,即生成16位的随机字符

#生成随机长度为16的字符串的二进制编码
def random_b():
    seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    sa = []
    for i in range(16):
        sa.append(random.choice(seed))
    salt = ''.join(sa)
    return bytes(salt, 'utf-8')
    # 更简单的做法
    # return bytes(''.join(random.sample('1234567890DeepDarkFantasy', 16)), 'utf-8')

其次来实现加密参数的生成(说白了就是翻译js代为为python代码)

#第二参数,rsa公匙组成
pub_key = "010001"
#第三参数,rsa公匙组成
modulus = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7"
#第四参数,aes密匙
secret_key = b'0CoJUm6Qyw8W8jud'

"""
AES 加密
"""
def aes_encrypt(text
### 关于网易云音乐中的音乐流派分类 网易云音乐作为中国领先的在线音乐平台之一,其音乐库涵盖了广泛的音乐流派。这些流派不仅满足了不同用户的听歌需求,还为数据分析和个性化推荐提供了重要依据[^1]。 #### 音乐流派的主要类别 以下是常见的音乐流派及其特点: 1. **流行音乐 (Pop)** 流行音乐是最广泛接受的音乐类型之一,在网易云音乐平台上占据了很大的比例。它通常具有简单易记的旋律、歌词贴近生活的特点。 2. **摇滚音乐 (Rock)** 摇滚音乐以其强烈的节奏感和吉他为主的乐器编配著称。在网易云音乐中,用户可以通过专门的标签找到各种经典摇滚乐队的作品。 3. **电子音乐 (Electronic/Dance Music, EDM)** 这一类型的音乐主要依赖合成器和其他电子设备制作而成,适合用于舞蹈场合或者夜店环境。EDM近年来在全球范围内迅速崛起,并成为网易云音乐的重要组成部分。 4. **古典音乐 (Classical)** 古典音乐历史悠久,包含了巴赫、贝多芬等大师级作曲家的经典作品。对于喜欢高雅艺术的人来说,这是一个不可错过的领域。 5. **民谣音乐 (Folk)** 民谣音乐往往讲述个人故事或社会现象,伴奏相对简洁朴素。这种风格在中国也有着深厚的文化底蕴,许多独立音乐人都活跃于此领域。 6. **嘻哈/说唱音乐 (Hip-Hop/Rap)** 嘻哈文化起源于美国街头,强调韵律与押韵技巧。随着全球化的推进,越来越多中文原创说唱歌曲被上传至网易云音乐并受到欢迎。 7. **爵士音乐 (Jazz)** 爵士是一种即兴创作的艺术形式,融合了蓝调音阶、复杂的和弦进程以及独特的演奏方式。尽管受众群体较小,但在特定圈层内仍拥有较高地位。 8. **乡村音乐 (Country)** 虽然在国内并不算主流,但部分国际知名乡村艺人的作品也能在网易云音乐上找到踪迹。 9. **世界音乐 (World Music)** 包括来自世界各地的传统民族音乐样式,比如非洲鼓点、拉丁美洲桑巴舞曲等等。这类资源有助于拓宽听众视野,体验异域风情。 #### 数据可视化支持下的流派分析 基于 Flask 的大数据分析系统可以进一步挖掘上述各流派之间的关系及趋势变化情况。通过对海量用户行为日志进行处理,可得出哪些流派更受年轻人喜爱?哪段时间里某一流派突然走红等问题的答案。 此外,在 HarmonyOS 设计理念指导下开发的应用程序界面也充分考虑到了如何让用户方便快捷地浏览自己感兴趣的音乐种类信息。例如,“底部播放条”的存在使得即使是在查看社区评论时也不会错过任何一首正在欣赏的好歌[^2]。 ```python import requests from bs4 import BeautifulSoup def fetch_music_genres(): url = 'https://music.163.com/discover' headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') genres_section = soup.find('div', class_='g-bd') # Example selector; adjust as needed. all_genres = [] for genre_link in genres_section.find_all('a'): genre_name = genre_link.string.strip() all_genres.append(genre_name) return all_genres[:10] print(fetch_music_genres()) ``` 以上代码片段展示了一个简单的网络请求函数来抓取网易云音乐首页可能存在的前十个热门音乐流派名称列表(仅为示意用途)。实际应用需遵循目标站点robots.txt文件规定及相关法律法规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值