(async function(){
console.log("🚨 小红书批量删除脚本启动(持续删除 + 滚动加载)");
const delay = ms => new Promise(res => setTimeout(res, ms));
const minDelay = 1500, maxDelay = 3500;
const confirmWait = 8000;
const maxEmptyScrolls = 6; // 连续多少次滚动都没新元素就认为没有更多
function randDelay() {
return Math.floor(Math.random() * (maxDelay - minDelay) + minDelay);
}
async function waitForConfirmBtn(timeout = confirmWait) {
const start = Date.now();
while (Date.now() - start < timeout) {
let btn = Array.from(document.querySelectorAll("button, span"))
.find(el => /(确认|确定|确认删除)/.test(el.innerText.trim()));
if (btn) return btn;
await delay(300);
}
return null;
}
function findFirstDeleteBtn() {
return document.querySelector(".control.data-del");
}
// 尝试滚动加载更多内容
async function scrollToLoadMore() {
// 平滑向下滚动一屏(可多次),并等待短暂时间让懒加载出结果
window.scrollBy({ top: window.innerHeight * 0.9, left: 0, behavior: 'smooth' });
await delay(800 + Math.floor(Math.random() * 600));
}
let deleted = 0;
let emptyScrollCount = 0;
while (true) {
// 每轮都重新查第一个可删除按钮
let btn = findFirstDeleteBtn();
if (!btn) {
// 没找到,尝试滚动加载更多看看
await scrollToLoadMore();
let btnAfter = findFirstDeleteBtn();
if (!btnAfter) {
emptyScrollCount++;
console.log(`🔍 未发现可删除项(连续 ${emptyScrollCount} 次)。`);
if (emptyScrollCount >= maxEmptyScrolls) {
console.log("🎉 疑似无更多可删除笔记,脚本结束");
break;
}
// 再等一下继续尝试
await delay(800 + Math.floor(Math.random()*800));
continue;
} else {
emptyScrollCount = 0;
btn = btnAfter;
}
} else {
emptyScrollCount = 0;
}
// 确保按钮仍在 DOM 且可点击
try {
deleted++;
console.log(`🗑 正在删除第 ${deleted} 条(动态查询)`);
btn.scrollIntoView({ behavior: "smooth", block: "center" });
await delay(500 + Math.floor(Math.random()*300));
// 点击删除并等待确认
btn.click();
let confirmBtn = await waitForConfirmBtn();
// 重试一次点击删除按钮(页面可能未响应)
if (!confirmBtn) {
console.warn("⚠ 未立刻找到确认按钮,重试点击删除按钮...");
btn.click();
confirmBtn = await waitForConfirmBtn();
}
if (confirmBtn) {
confirmBtn.click();
console.log(`✅ 第 ${deleted} 条确认点击完成`);
} else {
console.warn(`❌ 第 ${deleted} 条确认按钮仍未找到,跳过`);
}
// 等待该条从 DOM 消失或页面稳定
const waitStart = Date.now();
while (Date.now() - waitStart < 6000) {
// 如果按钮被移除,或页面发生变化,说明已处理
if (!document.contains(btn)) break;
await delay(300);
}
} catch (e) {
console.error("删除过程中异常:", e);
}
// 随机延时,模拟人工行为
const w = randDelay();
console.log(`⏳ 等待 ${w}ms`);
await delay(w);
}
console.log("✅ 总计尝试删除:", deleted);
console.log("脚本执行完毕");
})();
小红书批量删除笔记的浏览器可执行脚本
最新推荐文章于 2025-11-25 12:11:25 发布
该文章已生成可运行项目,
本文章已经生成可运行项目
836

被折叠的 条评论
为什么被折叠?



