你是否也曾为B站上密密麻麻的关注列表而烦恼?想要清理却发现手动取消关注太费时费力?别担心,这款Bilibili批量取消关注工具正是为你而生!
开发初衷:
- 手动取消关注效率低下: 随着B站内容的日益丰富,我们关注的UP主也越来越多。然而,手动一个个取消关注不仅耗时耗力,还容易让人感到疲惫和烦躁。
- 批量操作需求迫切: 当我们需要清理关注列表时,往往希望一次性取消多个关注,而不是逐个点击。这款工具正是为了解决这一痛点而开发的。
- 简化操作流程,提升用户体验: 我们希望为用户提供一个简单易用、高效便捷的工具,让关注列表管理变得更加轻松愉快。
工具优势:
- 一键批量取消: 只需简单几步操作,即可批量取消多个关注,省时省力。
- 自定义选择: 支持按分类、按时间等多种方式筛选关注列表,精准取消目标关注。
- 安全可靠: 严格遵守B站平台规则,确保账号安全,无需担心被封禁风险。
适用场景:
- 清理过期关注: 取消关注已不再活跃或不再感兴趣的UP主。
- 整理关注列表: 将关注列表分类整理,方便日后查找和管理。
- 账号迁移: 更换账号时,快速取消原账号的关注。
使用这款Bilibili批量取消关注工具,你将告别手动操作的繁琐,轻松管理关注列表,享受更加清爽的B站体验!
![图片[1]-Bilibili 批量取消关注工具:解放双手,轻松管理关注列表免费开源-海马科技](https://www.dynamic365.cn/wp-content/uploads/2025/03/image-12-1024x486.png)
const { default: axios } = require("axios");
async function getlist() {
const url = `https://api.bilibili.com/x/relation/followings?order=desc&order_type=&vmid=365148057&pn=1&ps=24&gaia_source=main_web&web_location=333.1387`;
const headers = {
'Cookie': ' '// 替换为有效的 Cookie
};
try {
const res = await axios.get(url, { headers });
if (res.data.data.list && Array.isArray(res.data.data.list)) {
// 使用 for...of 替代 forEach,以便支持 await
for (const item of res.data.data.list) {
await cancleflow(item.mid); // 等待每个 cancleflow 完成
}
if(res.data.data.list.length>0){
await getlist();
}
} else {
console.log("list is not an array or is undefined/null");
}
} catch (error) {
console.error("Error fetching list:", error);
}
}
async function cancleflow(id) {
const url = 'https://api.bilibili.com/x/relation/modify?statistics=%257B%2522appId%2522%253A100%252C%2522platform%2522%253A5%257D&x-bili-device-req-json=%7B%22platform%22:%22web%22,%22device%22:%22pc%22,%22spmid%22:%22333.1387%22%7D';
// 使用 URLSearchParams 或对象格式
const data = new URLSearchParams({
fid: id,
act: 2,
re_src: 11,
gaia_source: 'web_main',
spmid: '333.1387',
extend_content: '{"entity":"user","entity_id":1868395426}',
is_from_frontend_component: true,
csrf: 'cc752ca9ade100146a54acc527feb5cd'
});
const headers = {
'Cookie': '' // 替换为有效的 Cookie
};
try {
const res = await axios.post(url, data, { headers });
console.log(res.data);
} catch (error) {
console.error("Error in cancleflow:", error.response ? error.response.data : error.message);
}
}
async function main() {
await getlist(); // 等待 getlist 完成
console.log("All operations completed.");
}
main();
© 版权声明
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「dynamic365.cn」发布的内容若侵犯到您的权益,请联系站长邮箱:738144543@qq.com 进行删除处理。
本站资源大多存储在云盘,如发现链接已失效,请及时联系我们客服,我们会第一时间更新资源链接。
THE END