在这个信息爆炸的时代,微博成为了很多人分享生活点滴、获取新闻资讯的重要平台。然而,随着时间的推移,微博账号往往会积累大量内容。手动一条一条删除微博,不仅费时费力,还可能让人产生不小的心理负担。
因此,在这里分享一种能够批量删除微博的方式。不过这种方法需要一定的编程基础,并且可能会因为微博平台的更新而失效--目前来说是有效的!
1、选择Edge浏览器,登录微博后,来到个人主页界面
2、按住F12,打开浏览器开发者工具,并选择控制台的界面如图所示。
3、复制以下代码到控制台并执行。
function deleteMessage() {
// 下箭头
let iDom = document.getElementsByClassName('woo-font woo-font--angleDown morepop_action_bk3Fq')[0];
if (iDom) {
iDom.click();
setTimeout(() => {
// 删除点击
let deleteItems = document.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-pop-item-main');
for (let i = 0; i < deleteItems.length; i++) {
if (deleteItems[i].textContent === '删除') {
deleteItems[i].click();
break; // 找到并点击后,退出循环
}
}
}, 10);
setTimeout(() => {
// 确认删除框 确认点击
document.getElementsByClassName('woo-button-content')[1].click();
console.log(true);
setTimeout(() => {
deleteMessage(); // 重复执行
}, 800); // ms
}, 1000); // ms
}
}
// 执行
deleteMessage();
然后就会自动控制页面,进行删除微博的操作,在此过程中,请不要关闭控制台!!!
下面对上述代码进行详细分析:
- 首先,代码尝试获取具有特定类名的元素(代表下拉箭头),如果存在,则点击它以显示更多操作选项。
- 然后,通过
setTimeout
延迟执行删除操作,以便等待下拉菜单出现。- 在延迟之后,代码获取所有具有
woo-box-flex woo-box-alignCenter woo-pop-item-main
类的元素,并遍历这些元素以找到文本内容为“删除”的按钮。- 找到“删除”按钮后,代码点击该按钮并退出循环。
- 接着,代码再次使用
setTimeout
延迟执行确认删除操作,点击确认删除按钮。- 删除操作完成后,代码通过
console.log
输出true
,并设置另一个setTimeout
来重复执行deleteMessage
函数,实现连续删除操作。
1、函数定义和首次点击下拉箭头
function deleteMessage() {
let iDom = document.getElementsByClassName('woo-font woo-font--angleDown morepop_action_bk3Fq')[0];
if (iDom) {
iDom.click();
- 定义
deleteMessage
函数。 - 获取下拉箭头元素并点击,以显示操作菜单。
2、等待菜单展开后执行删除
setTimeout(() => {
let deleteItems = document.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-pop-item-main');
for (let i = 0; i < deleteItems.length; i++) {
if (deleteItems[i].textContent === '删除') {
deleteItems[i].click();
break;
}
}
}, 10);
- 设置10毫秒的延迟,等待下拉菜单展开。
- 获取下拉框里面所有按钮,遍历并点击文本内容为“删除”的按钮。
3、 等待点击删除后执行确认
setTimeout(() => {
document.getElementsByClassName('woo-button-content')[1].click();
}, 1000);
- 设置1000毫秒的延迟,等待删除按钮被点击。
- 点击确认删除的按钮。
4、确认删除后递归调用
setTimeout(() => {
console.log(true);
setTimeout(() => {
deleteMessage(); // 重复执行
}, 800); // ms
}, 1000); // ms
- 设置1000毫秒的延迟,等待确认删除操作完成。
- 在控制台输出
true
,表示一个删除操作已完成。 - 再次设置800毫秒的延迟后,递归调用
deleteMessage
函数,以便继续执行删除操作。
5、函数调用
// 执行
deleteMessage();
- 调用
deleteMessage
函数,启动整个删除流程。