python开发直播网站

编程入门 行业动态 更新时间:2024-10-25 08:17:08

python开发直播<a href=https://www.elefans.com/category/jswz/34/1771113.html style=网站"/>

python开发直播网站

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

分析过程:

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

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

image.png

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

image.png

分析完成。

代码部分:

import requests

import time

import random

url = '.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)

更多推荐

python开发直播网站

本文发布于:2024-02-26 21:08:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703911.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网站   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!