2024年Python最全Python爬虫:斗鱼TV

本文详细介绍了如何使用Python实现斗鱼TV的弹幕爬虫,从房间信息和弹幕认证服务器获取,到Socket消息的发送流程,包括登录、认证、保持连接和接收弹幕的步骤。通过分析HTTP请求和JS脚本,提取主播信息和认证服务器地址,然后建立Socket进行消息交互,最终获取并解析弹幕消息。
摘要由CSDN通过智能技术生成

1.2.房间信息和弹幕认证服务器获取

首先我们拿随便一个主播房间来说,比如,qiuri

Ta的房间链接分为两种

对这个主播房间页面请求,正常,所有的有用信息都不是放在HTML中渲染出来,而是有一条放在HTML中内置的JS脚本中,这是为了减少服务器渲染HTML的压力?可是渲染放在JS里面不也一样需要渲染?(不明白)总之,就是程序先加载没有具体数据填充页面,然后JS更新数据。

内置的两段JS脚本,JS脚本中有两个变量,该变量很容易转换成JSON数据,也就是两段JSON数据,一个是关于主播的个人信息,另一个是关于弹幕认证服务器的列表(该列表中的任意一个服务器均可以认证,但每一次请求主播页面得到的认证服务器列表都不一样)

Sc

Screen Shot 2016-02-09 at 1.01.51 PM.png

Screen Shot 2016-02-09 at 12.44.01 PM.png

通过这步,我们就拿到了主播的信息以及弹幕服务器的认证地址,端口。

1.3.发送Socket消息的流程简介

我们通过抓包,分析那一大坨数据包,可以确定以下通过以下的流程便可以获取弹幕消息。(分析过程比较繁琐)

首先建立两个Socket。一个用于认证(@danmu_auth_socket),另一个用户获取弹幕(@danmu_client)。

  • 步骤1: @danmu_auth_socket 发送消息登陆,获取消息1解析出匿名用户的用户名,再获取消息2解析出gid

  • 步骤2: @danmu_auth_socket 发送qrl消息,获取两个没有什么用的消息

  • 步骤3: @danmu_auth_socket 发送keeplive消息

  • 步骤4: @danmu_socket 发送伪登陆消息(所有匿名用户都一样只需要输入步骤一中用户名就行了,因为认证已经在上面做过了)

  • 步骤5: @danmu_socket 发送join_group消息需要步骤一中国的gid

  • 步骤6: @danmu_socket 不断的recv消息就可以获取弹幕消息了

后面会详细解释

2.1.消息S

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值