怎么用python发弹幕_python实现虎牙直播弹幕

如题:如何实现B站直播弹幕呢?

分析过程:

进入虎牙官网--->随便点个直播房间--->F12抓包,刷新

分析每一条请求,点响应,找到弹幕信息。如图

image.png

可以看出返回信息是json格式的,提交方法是get,再分析一下提交参数

image.png

分析完成。

代码部分:

import requests

import time

import random

url = 'http://www.huya.com/cache1min.php?m=chatMessage&tid=22808102&sid=2536653492' # get请求,向这个网址提交数据

#构造get提交参数

form = {'m':'chatMessage',

'tid':'22808102',

'sid':'2536653492',

}

header = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0'}

#循环提交数据,达到实时获取弹幕信息效果,通过调试发现,太快只提交一次数据的话弹幕可能会重复,故,暂停一下。

#但是暂停一下提交,还是可能获取到重复的数据。故这里采用前后数据进行比较的方法防止弹幕重复,当然你也可以用多次比较。

while True:

html1 = requests.get(url,headers =header,params=form)#开始提交数据

text1 = list(map(lambda ii: html1.json()['result']['chats'][ii]['chat'], range(20)))#获取数据,因为返回的数据是json格式,故可以用分层切片来取到弹幕那层,然后用map和lamda函数的用法取得弹幕信息,最后直接转换成list

#print(text1)

time.sleep(random.uniform(2,3)) #暂停3秒,再提交数据

html2 = requests.get(url, headers= header,params=form)

text2 = list(map(lambda ii: html2.json()['result']['chats'][ii]['chat'], range(20)))

#print(text2)

huyadanmu_txt = [item for item in text2 if item not in text1]#比较两个弹幕信息,列表推导弹幕信息

for danmu in huyadanmu_txt:

time.sleep(random.uniform(1,2))

print('虎牙直播间实时弹幕:',danmu)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值