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

有浏览器就行,无需爬虫,无需安装其他任何软件或者插件。
在任意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"}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值