删除微博博文js脚本实现

我当前的时间:2024.8.18

脚本可以直接使用,随着时间推移,微博页面元素可能会有变动。

思路:javascript 模拟手动点击,下滑,并且删除博文

首先登录微博,进入自己的博文界面如下:

进入当前页面F12 ,控制台直接执行即可(当前脚本只能从上往下删,且没有跳过,如果需要,可自行扩展)

代码(选其一即可):


//一、优化后最强版本(可长时间执行,但也不保证不会停止)--------------------------------------------------------------------------------------------------------------------------------
{function deleteMessage() {try {var scroHeight = 700; //向下滑动的高度  px// 更多按钮let iDom = document.getElementsByClassName('woo-font woo-font--angleDown morepop_action_bk3Fq')[0];if (iDom) {//先找到当前博文var currentcontext = iDom.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;//一、蓝色警方通告var tonggao = currentcontext.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-box-justifyCenter woo-tip-main woo-tip-flat woo-tip-warn tips_tip_3WqKM tips_cursor_2uylm')[0];if (tonggao)//找到当前通告的话,删除当前整个博文,并return,并向下滑动{//根据通告框找到当前最高级别(用于删除)var tonggaoParent = tonggao.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;//1、先删除自己tonggaoParent.parentNode.removeChild(tonggaoParent);//2、再向下滑动window.scrollBy({top: scroHeight,behavior: 'smooth' // 可选,使滚动平滑进行});return;}//二、黄色举报通告var jubao = currentcontext.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-box-justifyCenter woo-tip-main woo-tip-flat woo-tip-error tips_tip_3WqKM tips_cursor_2uylm')[0];if (jubao)//找到当前通告的话,删除当前整个博文,并return,并向下滑动{//根据通告框找到当前最高级别(用于删除)var tonggaoParent = jubao.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;//1、先删除自己tonggaoParent.parentNode.removeChild(tonggaoParent);//在向下滑动window.scrollBy({top: scroHeight,behavior: 'smooth' // 可选,使滚动平滑进行});return;}当前博文做屏幕居中操作获取元素相对于视口的位置//var elementRect = iDom.getBoundingClientRect();计算滚动位置//var offsetTop = elementRect.top + window.scrollY - (window.innerHeight / 2) + (elementRect.height / 2);滚动到指定位置//window.scrollTo({//    top: offsetTop,//    behavior: 'smooth'//});iDom.scrollIntoView({behavior: 'smooth',block: 'center',inline: 'center'});iDom.click();setTimeout(() => {let deleteOptions = document.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-pop-item-main');// 循环更多列表内的按钮for (let option of deleteOptions) {// 只对删除按钮点击if (option.textContent.trim() == '删除' || option.textContent.trim() == '取消快转') {option.click();setTimeout(() => {// 等待删除对话框出现后再点击确定按钮var dialogCtrl = document.querySelector('.woo-dialog-ctrl');if (dialogCtrl) {// 删除弹窗的确定按钮var secondButton = dialogCtrl.querySelectorAll('button')[1].click();console.log("删除成功了");}}, 200);break;}}}, 100);}} catch (error) {// 异常捕获console.error("郭哥报错了!:", error);}}var timerIdMins = [];var timers = setInterval(function () {//怕有空白处可能导致js不执行,所以刷新一下微博列表var buttons = document.querySelectorAll('.Profile_btn_4Wj2Q');if (buttons.length > 1) {buttons[1].click();// 点击第二个按钮“微博”} else {return;}//阻塞函数function blockForThreeSeconds() {return new Promise(resolve => {setTimeout(resolve, 2000);});}//阻塞函数function blockForThreeSeconds22() {return new Promise(resolve => {setTimeout(resolve, 500);});}//blockForThreeSeconds().then(() => {//    setInterval(deleteMessage, 200);  //白天快速版本//});blockForThreeSeconds().then(() => {// 获取微博数var element = document.querySelector('.wbpro-screen-v2 > div:first-child');var number = 0;if (element) {var text = element.textContent.trim();// 提取数字部分number = text.match(/\d+/);blockForThreeSeconds22().then(() => {timerIdMins.push(setInterval(function () {//达到数量停止定时器if (number < 100000 && number != null && number != 0) {timerIdMins.forEach(function (timerId) {clearInterval(timerId);});//clearInterval(timers);    //先不删大定时器console.log("所有定时器已停止,已经删够啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!剩余:" + number);return;}else {deleteMessage();}}, 400));});} else {return;}});}, 1000 * 20);}//二、白天快速版本(得盯着点)--------------------------------------------------------------------------------------------------------------------------------
{function deleteMessage() {try {var scroHeight = 700; //向下滑动的高度  px// 更多按钮let iDom = document.getElementsByClassName('woo-font woo-font--angleDown morepop_action_bk3Fq')[0];if (iDom) {//先找到当前博文var currentcontext = iDom.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;//一、蓝色警方通告var tonggao = currentcontext.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-box-justifyCenter woo-tip-main woo-tip-flat woo-tip-warn tips_tip_3WqKM tips_cursor_2uylm')[0];if (tonggao)//找到当前通告的话,删除当前整个博文,并return,并向下滑动{//根据通告框找到当前最高级别(用于删除)var tonggaoParent = tonggao.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;//1、先删除自己tonggaoParent.parentNode.removeChild(tonggaoParent);//2、再向下滑动window.scrollBy({top: scroHeight,behavior: 'smooth' // 可选,使滚动平滑进行});return;}//二、黄色举报通告var jubao = currentcontext.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-box-justifyCenter woo-tip-main woo-tip-flat woo-tip-error tips_tip_3WqKM tips_cursor_2uylm')[0];if (jubao)//找到当前通告的话,删除当前整个博文,并return,并向下滑动{//根据通告框找到当前最高级别(用于删除)var tonggaoParent = jubao.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;//1、先删除自己tonggaoParent.parentNode.removeChild(tonggaoParent);//在向下滑动window.scrollBy({top: scroHeight,behavior: 'smooth' // 可选,使滚动平滑进行});return;}当前博文做屏幕居中操作获取元素相对于视口的位置//var elementRect = iDom.getBoundingClientRect();计算滚动位置//var offsetTop = elementRect.top + window.scrollY - (window.innerHeight / 2) + (elementRect.height / 2);滚动到指定位置//window.scrollTo({//    top: offsetTop,//    behavior: 'smooth'//});iDom.scrollIntoView({behavior: 'smooth',block: 'center',inline: 'center'});iDom.click();setTimeout(() => {let deleteOptions = document.getElementsByClassName('woo-box-flex woo-box-alignCenter woo-pop-item-main');// 循环更多列表内的按钮for (let option of deleteOptions) {// 只对删除按钮点击if (option.textContent.trim() == '删除' || option.textContent.trim() == '取消快转') {option.click();setTimeout(() => {// 等待删除对话框出现后再点击确定按钮var dialogCtrl = document.querySelector('.woo-dialog-ctrl');if (dialogCtrl) {// 删除弹窗的确定按钮var secondButton = dialogCtrl.querySelectorAll('button')[1].click();console.log("删除成功了");setTimeout(() => {// 递归调用此方法deleteMessage();}, 200);}}, 200);break;}}}, 100);}} catch (error) {// 异常捕获console.error("郭哥报错了!:", error);}}setInterval(deleteMessage, 200); //var timers = setInterval(function () {//    //怕有空白处可能导致js不执行,所以刷新一下微博列表//    var buttons = document.querySelectorAll('.Profile_btn_4Wj2Q');//    if (buttons.length > 1) {//        buttons[1].click();// 点击第二个按钮“微博”//    } else {//        return;//    }//    setInterval(deleteMessage, 200); //}, 1000 * 20);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404424.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git使用方法(三)---简洁版上传git代码

1 默认已经装了sshWindows下安装SSH详细介绍-CSDN博客 2 配置链接github的SSH秘钥 1 我的.ssh路径 2 进入路径cd .ssh 文件 3 生成密钥对 ssh-keygen -t rsa -b 4096 (-t 秘钥类型 -b 生成大小) 输入完会出现 Enter file in which to save the key (/c/Users/Administrator/…

使用DOM破坏启动xss

目录 实验环境&#xff1a; 分析&#xff1a; 找破坏点&#xff1a; 查看源码找函数&#xff1a; 找到了三个方法&#xff0c;loadComments、escapeHTM 、displayComments loadComments escapeHTM displayComments&#xff1a; GOGOGO 实验环境&#xff1a; Lab: Exp…

MySQL库表的基本操作

目录 1.库的操作1.1 创建数据库1.2字符集和校验规则①查看系统默认字符集以及校验规则②查看数据库支持的字符集③查看数据库支持的字符集校验规则④校验规则对数据库的影响 1.3操纵数据库①查看数据库②显示创建的数据库的语句③修改数据库④数据库删除⑤备份和恢复⑥还原注意…

C库函数signal()信号处理

signal()是ANSI C信号处理函数&#xff0c;原型如下&#xff1a; #include <signal.h>typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); signal()将信号signum的处置设置为handler&#xff0c;该handler为SIG_IGN&#xff…

物联网(IoT)详解

物联网&#xff08;IoT&#xff09;详解 1. IoT定义简介2. IoT工作原理3. IoT关键技术4. 物联网与互联网区别5. IoT使用场景6. 开源物联网平台7. 参考资料 1. IoT定义简介 首先第一个问题&#xff0c;什么是物联网&#xff08;IoT&#xff09;? 物联网&#xff08;英文&#…

LabVIEW光纤水听器闭环系统

开发了一种利用LabVIEW软件开发的干涉型光纤水听器闭环工作点控制系统。该系统通过调节光源频率和非平衡干涉仪的光程差&#xff0c;实现了工作点的精确控制&#xff0c;从而提高系统的稳定性和检测精度&#xff0c;避免了使用压电陶瓷&#xff0c;使操作更加简便。 项目背景 …

thinkphp5实现弹出框(下拉框选项动态赋值)

效果图 原理 先执行接口获取动态数据&#xff0c;然后在 layer.open的success回调函数中动态添加html代码片段&#xff0c;通过如下方法&#xff0c;将动态生成的代码插入指定的div中&#xff0c;实现动态赋值的效果。 // 动态获取的数据 var data ......;// 弹出框配置 lay…

【BUU】[NewStarCTF 2023 公开赛道]Final -CP读取文件内容

漏洞检测 访问首页发现是ThinkPHP5 的站点 用工具扫描一下,发现存在ThinkPHP5.0.23 RCE漏洞 访问验证,写入shell 成功写入shell. 根目录发现flag,但是权限不足 提权获取flag 准备提权,这里一开始尝试了find,但是find权限不足 尝试采用cp命令,移动到web目录,发现访问还是…

基于web的物流管理系统--论文pf

TOC springboot473基于web的物流管理系统--论文pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可…

基于深度学习的图像特征优化识别复杂环境中的果蔬【多种模型切换】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍图像特征优化方法模型原理及实验对比模型训练每文一语 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 基于深度学习的图像识别技术广泛应…

清影智能开源版CogVideox:开源文本到视频生成模型的探索

人工智能&#xff08;AI&#xff09;领域的创新一直在不断推进&#xff0c;而下一个前沿领域&#xff0c;很可能就是文本到视频生成模型。在不久的将来&#xff0c;我们将会看到许多中小型公司推出自己的文本到视频生成模型&#xff0c;这一技术将会迅速发展。而这正是为什么当…

Java | Leetcode Java题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; class Solution {public int[] intersect(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int length1 nums1.length, length2 nums2.length;int[] intersection new int[Math.min(length1, length2)];int index1 …

建筑工程项目管理系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

Java——反射(4/4):反射的作用、应用场景(案例需求、实现步骤、代码实现)

目录 作用 应用场景 案例需求 实现步骤 代码实现 作用 基本作用&#xff1a;可以得到一个类的全部成分然后操作。可以破坏封装性。最重要的用途是&#xff1a;适合做Java的框架&#xff0c;基本上&#xff0c;主流的框架都会基于反射设计出一些通用的功能。 通过反射能够…

JVisualVM 基础知识与配置详解(图文界面)

目录 前言1. 基本知识2. 下载配置3. 测试 前言 对于Java的基本知识&#xff0c;推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 …

[Meachines] [Easy] Bastion SMB未授权访问+VHD虚拟硬盘挂载+注册表获取NTLM哈希+mRemoteNG远程管理工具权限提升

信息收集 IP AddressOpening Ports10.10.10.134TCP:22, 135, 139, 445, 5985, 47001, 49664, 49665, 49666, 49667, 49668, 49669, 49670 $ nmap -p- 10.10.10.134 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH fo…

multimodel ocr dataset

InternLM-XComposer2-4KHD InternLM-XComposer2-4KHD a light-weight Vision Encoder OpenAI ViT-Large/14Large Language Model InternLM2-7B, 这篇论文采用的是一种动态分辨率的输入&#xff1b; 全图有一个global view,resize到336*336&#xff1b; 然后把图片resize再pad…

Kubernetes群集部署

Kubernetes概述 是一个开源的Docker容器编排技术 源自于google的borg2015年7月kubernetesv1.0正式发布调度计算集群节点&#xff0c;动态管理节点上的作业使用[labels]和[pods]概念&#xff0c;将应用按逻辑单元分组 主要用途 自动化部署、扩展和管理容器应用资源调度部署管理…

计算机毕业设计pyspark+django+scrapy租房推荐系统 租房大屏可视化 租房爬虫 hadoop 58同城租房爬虫 房源推荐系统

用到的技术: 1. python 2. django后端框架 3. django-simpleui&#xff0c;Django后台 4. vue前端 5. element-plus&#xff0c;vue的前端组件库 6. echarts前端可视化库 7. scrapy爬虫框架 基于大数据的租房信息推荐系统包括以下功能&#xff1a…

Windows下串口编程与单片机串口设备通信(win32-API)

一、前言 串行通信接口&#xff0c;通常简称为“串口”&#xff0c;是一种数据传输方式&#xff0c;其中信息以连续的比特流形式发送&#xff0c;每个比特在不同的时间点被传输。这与并行通信形成对比&#xff0c;在并行通信中&#xff0c;多个比特同时通过多个线路传输。串口…