JS實現b站動態評論區抽獎(含去重)

動態轉發抽獎可以參考我其他的2篇文章
JS實現b站動態轉發抽獎(小人數)新方案講解
B站動態轉發抽獎教程(python)

視頻演示

JS實現b站動態評論區抽獎視頻演示

前期

測試頁面鏈接:https://t.bilibili.com/394309046095520212?tab=2
動態評論數量爲226,這個數量是全樓層的評論數量
在這裏插入圖片描述
共分爲8頁展示,一頁首層人數20
在這裏插入圖片描述

教程

1、訪問頁面

PC端打開瀏覽器,訪問你的動態抽獎頁面。點在評論上,不用點轉發。
在這裏插入圖片描述

2、打開“檢查”

鼠標右鍵,打開“檢查”,一般的快捷鍵都是F12
在這裏插入圖片描述
長這樣,我們需要在console(控制檯)下輸入代碼。

3、貼入代碼

**評論記得翻到第一頁!!!**超人性化設計,一步到位,還會打印所有用戶名和ID,如果不需要可以註釋掉打印代碼,就是下面那些console.log代碼,註釋使用 // ,不會的可以自行百度JS註釋。

console.log("程序開始運行");
console.log("定義集合存儲數據");
let name_set = new Set();
let id_set = new Set();
console.log("開始載入數據");
var page = 1;
var my_loop;

// 抽獎函數
function draw()
{
    // 循環次數
	for(var i=0; i<document.getElementsByClassName("con").length; i++)
	{
		var name = document.getElementsByClassName("con")[i].getElementsByClassName("user")[0].getElementsByTagName("a")[0].innerText;
		console.log(name+",加入集合");
		name_set.add(name);
		var id = document.getElementsByClassName("con")[i].getElementsByClassName("user")[0].getElementsByTagName("a")[0].getAttributeNode("data-usercard-mid").value;
		id_set.add(id);
	}
	console.log("第"+page+"頁數據存入Set完畢");
	if(null != document.getElementsByClassName("next")[0])
	{
		page++;
		console.log("自動翻頁...");
		document.getElementsByClassName("next")[0].click();
		//return true;
	}
	else
	{
		console.log("全部數據加載完畢");
		console.log("總共"+name_set.size+"名用戶");
		// 生成隨機數,直接打印中獎者信息
		var lucky_num = parseInt(Math.random()*(name_set.size),10);
		console.log("中獎用戶ID爲:"+Array.from(id_set)[lucky_num]);
		console.log("中獎用戶名爲:"+Array.from(name_set)[lucky_num]);
		console.log("中獎者大概位於 第" +parseInt(lucky_num/20+1)+ "頁");
		clearInterval(my_loop);
		// 這就是註釋
		//return false;
	}
}

// 定時調用函數
my_loop = setInterval(draw, 1500);

實際運行測試如下,如果評論人數較多或者網速較慢,請修改最後一行 my_loop = setInterval(draw, 1000); 把這裏的1000調大,1000代表1s,這是自動翻頁的時間。
在這裏插入圖片描述
10頁數據加載完畢後,這就是中獎者信息
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章