有浏览器就行,无需爬虫,无需安装其他任何软件或者插件。
在任意b站直播间,打开浏览器开发者工具(推荐使用chrome,对应开发者工具为DevTools),切换到控制台(console)面板即可。

作为一个b站未签约小透明游戏主播,最近想在直播间里搞搞抽奖。
刚好会一点jquery,所以想直接在直播间所在网页进行信息提取,然后随机抽取。

1, 从弹幕中随机抽出

js 代码如下

var danmus = $(".chat-history-list .chat-items .chat-item.danmaku-item ")
var danmu_list = [];
for(let i = 0; i< danmus.length; i ++) {danmu_list.push({uid: $(danmus[i]).data("uid"),name: $(danmus[i]).data("uname"),text: $(danmus[i]).data("danmaku")})
}
var index = Math.floor((Math.random() * danmu_list.length))
console.log(danmu_list[index])

复制到console下回车就可。
输出格式,示例如下:

{uid: 149259132, name: "大爽歌", text: "测试2"}

2, 从发弹幕的用户中随机抽出

但是从弹幕中随机抽取有个问题,就是弹幕发的多的人,获奖概率大。
如果希望每个发送弹幕的人抽奖概率一样,则要进行去重,代码如下:

var danmus = $(".chat-history-list .chat-items .chat-item.danmaku-item ")
var danmu_dict = {};
for(let i = 0; i< danmus.length; i ++) {var dm = {uid: $(danmus[i]).data("uid"),name: $(danmus[i]).data("uname"),text: $(danmus[i]).data("danmaku"),}if(!(dm.uid in danmu_dict)){danmu_dict[dm.uid] = dm}
}
var danmu_list = Object.values(danmu_dict)
var index = Math.floor((Math.random() * danmu_list.length))
console.log(danmu_list[index])

复制到console下回车就可。
输出格式同1, 示例如下:

{uid: 149259132, name: "大爽歌", text: "测试2"}

几行JS代码实现b站直播间弹幕抽奖相关推荐

  1. 用ffmpeg在Windows11下的命令行模式推流到B站直播间

    0. 通过修改环境变量,实现ffmpeg命令在任意命令行路径可用的方法.不用再使用下面的第1步了!! 注意:一路"确定 " 保存设置后,最好重启一下,这样就可以将ffmpeg变成系 ...

  2. 自定义事件详解以及实现有趣B站直播间弹幕轰炸功能

    案例:B站直播间弹幕轰炸跳过按键监听办法: var event = document.createEvent('Event'); event.initEvent('input', true, true ...

  3. 不用obs不用直播姬,直接ffmpeg命令行推流RTSP到B站直播间

    最近在做公司的直播准备工作,在尝试过程中,发现公司的"海康威视 DS-2CD1021FD-IW1"摄像头输出的是RTSP格式的. 经过各种搜索,尝试了用B站官方直播姬抓VLC窗口, ...

  4. 2021-04-21爬虫爬取b站直播间弹幕并制作词云

    直播间弹幕接口 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory?roomid=' + roomid 示例: json格式化 ...

  5. JS逆向-B站直播间弹幕protocbuf分析【10-24】

    先简单的记录下,有空再详细补充下. bibi直播间的弹幕协议已经从https变成wss. 抓包分析得知请求地址为:wss://hw-bj-live-comet-05.chat.bilibili.com ...

  6. B_zhan直播间弹幕抓取

    前两天研究了一下B_zhan的直播间,其实B_zhan的用户体量很少.我最近几个月一直在搞B站,几乎B_zhan能pa的都被我试过.其中还包括包括私信,大批量的私信.不过再三声明哈,我本人是为了学习, ...

  7. 隐身术?登顶 GitHub Top1:200 行 JS 代码让画面人物瞬间消失!

    整理 | 夕颜 出品 | CSDN(ID:CSDNnews) 今天,一个名为 Real-Time-Person-Removal(实时人物去除)项目在GitHub上火了,登上近日GitHub Trend ...

  8. java实现语法分析器_200 行 JS 代码,带你实现代码编译器

    一.前言 对于前端同学来说,编译器可能适合神奇的魔盒 ,表面普通,但常常给我们惊喜. 编译器,顾名思义,用来编译,编译什么呢?当然是编译代码咯 . 其实我们也经常接触到编译器的使用场景: React ...

  9. php公告滚动源码,10行js代码实现上下滚动公告效果方法

    本文主要给大家介绍了关于利用10行js代码实现滚动公告效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧.希望能帮助到大家 ...

最新文章

  1. 助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师
  2. 记录华为P40Pro+系列相机参数总结
  3. (二) 时间/空间复杂度计算
  4. how does SAP UI5 filter for list work in xml view
  5. LQ训练营(C++)学习笔记_常见动态规划模型
  6. 如何使用GZip和Jersey压缩Java REST API中的响应
  7. 14秋《c语言程序设计》作业2,《C语言程序设计》 作业参考答案.doc
  8. Redis学习---(15)Redis 脚本
  9. pycharm安装教程,超详细
  10. golang:正则表达式匹配网页url_网络爬虫:3种网页抓取方法
  11. 2006年星座运势全解-射手
  12. ROS2——Win10上的rqt_graph无法正常运行
  13. 安装zabbix4.0
  14. SFS2X 例子(java 扩展加as 客户端)
  15. 130242014029-黄超强-实验一
  16. 毕设项目 - 基于SSM的教师工作考核绩效管理系统(含源码+论文)
  17. VCC和GND短路,怎么找问题?
  18. 为何学习Python?这是我看到的最好回答
  19. 史上最全报表教程,还不快收藏!
  20. 朝鲜青年结婚流行新大件——手机

热门文章

  1. 计算机桌面屏幕设置,如何在计算机桌面上设置图片以及如何设置屏幕保护程序...
  2. 开源症状自诊微信小程序的设计方案
  3. Python3爬虫小项目(一)之爬取抖音的小视频
  4. [CF923D]Too Easy Problems
  5. cmi matlab,【每日一策】Matlab量化交易策略之 恒温器策略
  6. get请求参数 被 重复
  7. linux arm 时区 文件,ARM linux 时区
  8. viewport的深入理解
  9. 干货分享!7个方向下手,一步步学会精益管理
  10. 万里学院ACM宣传片