记录下爬取某直播间实时弹幕

文章详细描述了如何逆向分析直播平台中X-Bogus签名的生成过程,涉及MD5加密的应用,以及不同加密函数的区别。作者提供了从字符串处理到加密验证的步骤,并提醒读者这些内容仅限于学习用途,不得用于非法活动。

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

先上个图看下加密

这个x-bogus主要是用来获取直播间的signature 跟 另外一个比如用来请求评论的虽然在同一个vmp里面,但是需要的参数跟生成函数是不一样的 。这个signature在不同的room_id请求时会有校验,如果只是单独拿一个直播间的数据不逆也罢,但是想要通过room_id来实现不同的直播间数据那就非逆不可。

看下加密入口

通过调用栈我们不难发现,signature最终是去取一个字典里 去取X-Bogus的值,而这个X-Bogus是同过

n.frontierSign(a))这个函数运算得到,其中a就是 { "X-MS-STUB": U()(i.substring(1))}这玩意

所以我们要先拿到这个a

可以看到u()()里的参数就是请求wss所携带的信息,其中就有room_id,所以signature也是根据这个来校验的。

来吧 跟下u()到底做了什么

跟进来可以看到,它做的就是将字符串先转化成字节数组然后再转化成一个16进制的字符串,第一次其实可以跟着调试一步步往前扣代码,但是我看到这种结构的,然后稍微拉上下能看到这些

对于这一串东西,其实代码扣得多了包括前面的字符串转字节转字符串巴啦啦一堆,应该就能感觉到这是个md5,至于是不是标准的md5我们其实只要一个简单的验证就行

 

我们知道md5加密一串字符串得到的结果是唯一的,‘123456’的md5加密值可以记下啊,以后碰到都可以验证下,注意是字符串要带引号,所以这验证结果就是个标准的md5,不放心的可以再写个py验证下也是很方便的,把 i.substring(1)这个值本地md5加密跟网页上的对比下就行,那么到这里X-MS-STUB就搞定了。

然后就是X-Bogus

这个因为之前爬过评论之类,一看跟之前那个X-Bogus有点不一样,进去vmp可以看到这里面有好几个return (一大堆)这样的东西,所以在同一段加密文件里面用的不一样的加密函数。

这里可以用rpc或者补环境都可以,补环境坑太多,有太多的if try catch 比较烦,反正条条道路通罗马,能搞定就行。

至于protobuf什么的,这东西比较标准,网上的资料也很多,就不多赘述了。

就这么多吧嘻嘻

本文主要记录下这个逆向流程,供学习使用,提供的可操作性不得用于任何商业用途和违法违规场景

如有侵权,请联系我进行删除

爬取虎牙直播间弹幕需要使用到虎牙提供的API接口,可以通过以下步骤进行爬取: 1. 首先,在浏览器中打开虎牙直播间,按F12进入开发者工具,找到Network选项卡。 2. 在Network选项卡中找到XHR过滤器,刷新页面,会看到多个请求,其中一个请求是获取弹幕信息的API接口,该请求的url类似于:https://www.huya.com/XXXXXX,其中XXXXXX为直播间的ID。 3. 点击该请求,在右侧的Headers选项卡中找到Request Headers,复制Cookie和Referer的值,这些值将用于模拟登录和获取弹幕信息。 4. 使用Python的requests库模拟登录并发送请求,获取弹幕信息。代码示例如下: ```python import requests import json # 设置请求头信息 headers = { 'Cookie': 'XXXXXX', # 将Cookie替换为你自己的Cookie值 'Referer': 'https://www.huya.com/XXXXXX', # 将Referer替换为直播间的链接 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 直播间ID room_id = 'XXXXXX' # 将XXXXXX替换为直播间的ID # 获取弹幕信息的API接口 url = 'https://www.huya.com/cache.php?m=LiveChat&do=getChatListByTid&tid=' + room_id # 发送请求并获取响应 response = requests.get(url, headers=headers) json_text = response.text # 解析响应数据 data = json.loads(json_text) for item in data['data']['chatList']: print(item['content']) ``` 注意:使用爬虫获取弹幕信息可能存在法律风险,请谨慎使用。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值