b站批量取消关注脚本

进入我的关注页面直接f12控制台粘贴下面的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 定义点击“已关注”和“已互粉”按钮的函数
async function clickFollowButtons() {
// 获取所有符合条件的 div 元素
const followButtons = document.querySelectorAll('div.follow-btn__trigger.gray');

// 遍历并点击包含“已关注”或“已互粉”文本的按钮
for (const button of followButtons) {
if (button.innerText.includes("已关注") || button.innerText.includes("已互粉")) {
button.click(); // 模拟点击
console.log("已点击按钮:", button.innerText.trim());

// 每次点击后等待1秒
await new Promise(resolve => setTimeout(resolve, 1000));
}
}

console.log("当前页面的按钮点击完成!");
}

// 定义翻页函数
async function autoPaginate() {
let pageNumber = 1;

while (true) {
console.log(`正在处理第 ${pageNumber} 页...`);

// 点击当前页的“已关注”和“已互粉”按钮
await clickFollowButtons();

// 查找“下一页”按钮
const nextButton = document.querySelector('button.vui_button.vui_pagenation--btn.vui_pagenation--btn-side');
if (!nextButton || nextButton.disabled) {
console.log("没有更多页面了,脚本执行结束!");
break; // 如果没有“下一页”按钮或按钮不可用,退出循环
}

// 点击“下一页”按钮
nextButton.click();
console.log("已点击下一页按钮,等待页面加载...");

// 等待页面加载完成(根据网络情况调整延迟时间)
await new Promise(resolve => setTimeout(resolve, 3000));

pageNumber++;
}
}

// 设置延迟执行,确保页面加载完成
setTimeout(autoPaginate, 3000);