動態轉發抽獎可以參考我其他的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頁數據加載完畢後,這就是中獎者信息