B站类似抽奖动态太多,于是想要批量删除,奈何B站没有一键删除功能,于是查找了一下网上的解决方案,目前有以下几种方法,可分别尝试(如果不成功,就换另一种方法试试),在这里仅作汇总:
打开火狐/谷歌浏览器,进入个人空间,选择动态页面,按下F12,进入console控制器,输入以下代码。
方法一:
删除所有动态
setInterval(function () { $(".child-button")[1].click(); $(".bp-popup-ctnr").find(".bl-button--size")[0].click(); }, 500);
然后回车即可,就会自动帮你删除所有加载的动态,等待删除即可 。
方法二:
$(".content>.card>div>.c-pointer").each(
function(){
if($(this)[0].innerText === "删除") {
$(this).click(); setInterval(function () { $(".bp-popup-ctnr").find(".bl-button--size")[0].click(); }, 1000);
}
})
方法三:
删除所有动态
var uid = document.cookie.match(/(?<=DedeUserID=).+?(?=;)/)[0];
$.ajax({
url: "//api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid="; + uid + "&type=268435455",
type: "get",
xhrFields: {
withCredentials: true
},
success: function (res) {
cards = res.data.cards;
for (var i = 0; i < cards.length; i++) {
var csrf_token = document.cookie.match(/(?<=bili_jct=).+?(?=;)/)[0];
if (cards[i].desc.uid == uid) {
$.ajax({
url: '//api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic';,
type: "post",
xhrFields: {
withCredentials: true
},
data: {
'dynamic_id': cards[i].desc.dynamic_id_str,
'csrf_token': csrf_token
}
});
}
}
}
});
方法四:
【Note】只会删除包含"互动抽奖"类型的动态,其他类型动态需要手动或用上面方法一到三来进行删除
var needDelDeled = true,
delay = 1000,
scrolls = 800;
var w = '', d = '', r = 0;
function getLuckyDraw() {
w.css("background-color", "#f1c40f");
w = w.parents(".card");
w.css("background-color", "#2ecc71");
w[w.length - 1].querySelectorAll(".child-button")[1].click();
setTimeout(clickDel, delay);
}
function getDel() {
d.css("background-color", "#8e44ad");
d = d.parents(".card");
d.css("background-color", "#2ecc71");
d[d.length - 1].querySelectorAll(".child-button")[1].click();
setTimeout(clickDel, delay);
}
function clickDel() {
//点删除
$(".popup-content-ctnr")[$(".popup-content-ctnr").length - 2].querySelector(".bl-button").click(); // 点确定
r += scrolls;
$('html, body').animate({ scrollTop: r }, 30);
$(".fold-text").click()
$(".expand-btn").click();
w = $(".main-content").find('span[click-title="抽奖详情"]');
d = $(".main-content").find('.deleted-text');
if (d.length && needDelDeled) setTimeout(getDel, delay);
else setTimeout(getLuckyDraw, delay);
}
if (/dynamic/.test(window.location.href) && confirm("是不是要删除抽奖动态")) {
r += scrolls;
$('html, body').animate({ scrollTop: r }, 30);
$(".fold-text").click()
$(".expand-btn").click();
w = $(".main-content").find('span[click-title="抽奖详情"]');//*互动抽奖内容定位
d = $(".main-content").find('.deleted-text'); //*已删除内容定位
if (d.length && needDelDeled) setTimeout(getDel, delay);
else setTimeout(getLuckyDraw, delay);
}
会弹出是否删除抽奖动态页面,选择确定,则会自动进行删除,只要耐心等待删除过程就可以了。
【注】如果火狐或谷歌浏览器都无法删除,换edge或360浏览器试试!
var x = 100;
var deleteLoop = setInterval(function() {
if (x > 0) {
$("[data-type='THREE_POINT_DELETE']")[0].click();
setTimeout(function() {
$("[class='bili-modal__button confirm']")[0].click();
}, 1000);
document.documentElement.scrollTop = 10000;
x--;
} else {
clearInterval(deleteLoop);
}
}, 2000);
【补充】:来自 @jgfdvhtdc
var x = 30;//需要删除的条数
var y = 10;//从第几条开始删除,第一条是0,第十条是9以此类推
var interval = setInterval(function() {
if (x > 0) {
$("[data-type='THREE_POINT_DELETE']")[y].click();
var del = setInterval(function() {
$("[class='bili-modal__button confirm']")[0].click();
clearInterval(del);
}, 1000);
console.log("times:" + x);
x--;
} else {
clearInterval(interval);
console.log("done!")
}
}, 3000);