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)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,647评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 如题:如何实现B站直播弹幕呢? 分析过程: 进入B站官网--->随便点个直播房间--->F12抓包,刷新 分析每一...
    北冥神君阅读 5,619评论 0 1
  • 心 颤微 美人悲 目光深邃 寂寥的诡媚 卷一纸胭脂红 怎买伊人太憔悴 谁人堪怜谁人堪醉 一曲长相思更难入睡 秋雨花...
    三里秋袭阅读 2,435评论 0 0
  • 是的,此标题是著名情感作家张小娴老师的新书名。昨日,在深圳书城,我有幸参加了她新书签售会第一站。场面非常之火爆...
    敲开心的小泥巴阅读 3,165评论 0 0

友情链接更多精彩内容