2022年12月微博新版本界面_批量删除微博博文内容

js小技能:批量删除新浪微博 1、利用Chrome的console删除所有微博

2022最新批量删除微博丨怎么一键批量删除微博与删除关注?

2022微博改版界面后删除微博详细步骤

​ 【点我查看教程步骤 ​】

用到的代码-本版本为目前最新的脚B

请用以下插件运行

2022年12月最新微博新版批量删除博文代码_删除清空微博博文新浪微博删除代码与方法_星爷万岁呀的博客-CSDN博客

 代码如下

/* eslint-disable no-unused-vars */
/* eslint-disable no-extra-semi */
/* eslint-disable no-console */
// ==UserScript==
// @name         2022weibo_new一键删除、清空助手
// @namespace    https://blog.csdn.net/wangwei490202517/category_10507403.html?spm=1001.2014.3001.5482
// @version      1.0.8
// @description  一键批量删除微博、取消关注、删除粉丝、删除点赞记录
// @author      echo_wx:WZMSLR
// @match      https://weibo.com/*
// @icon         https://tva2.sinaimg.cn/crop.2.18.304.304.180/ad573135jw8f33qt1c74sj208k08z75q.jpg?KID=imgbed,tva&Expires=1671381776&ssig=du6gqkc8OF
// @license      MIT
// @require      https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js
// @require      https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js
// @grant        none
// ==/UserScript==;(function () {'use strict'const jq = window.jQueryconst HELPER_NAME = '2022年新版微博一键清空助手_微博@当时我就没憋住'const TOKEN = jq.cookie('XSRF-TOKEN')const WB_CONFIG = window.$CONFIGconst UID = WB_CONFIG.uidconst USER = WB_CONFIG.userconst showNewWeoboTip = () => {const newWeiboEntry = jq('a[action-type="changeversion"]')if (!newWeiboEntry[0]) {return setTimeout(showNewWeoboTip, 500)}const tip = jq('<div />')tip.css({position: 'fixed',top: 70,left: 10,width: 200,height: 30,color: '#f00',background: '#fff',border: '1px solid #f00',lineHeight: '30px',textAlign: 'center',cursor: 'pointer',}).text('当前是旧版,是否切换到新版?').click(() => {if (newWeiboEntry[0]) {newWeiboEntry[0].click()}})jq('#plc_frame').append(tip)}if (!USER) {return showNewWeoboTip()}const STATUSES_COUNT = USER.statuses_countconst FRIENDS_COUNT = USER.friends_countconst FOLLOWERS_COUNT = USER.followers_countconst URL_PREFIX = 'https://weibo.com/u'const c_app = jq('#app')const c_menu = jq('<div />')const c_notice = jq('<div />')const c_btn = jq('<div />')if (!UID) return// 当前删除页码let deletePage// 已删除数let deletedCount// 停止清空let stop// 折叠菜单let foldconst utils = {// alert failalertFail: (jqXHR, textStatus, errorThrown) => {var error = '状态码:' + jqXHR.status + ',异常:' + errorThrownalert('读取数据失败,请稍后重试\n' + error)},// 检查是否在当前页checkURL: (url, title) => {const isCurrent = window.location.href.indexOf(url) !== -1if (!isCurrent) {const r = confirm('当前操作需要前往 ' + title + ' 页面,是否跳转?')if (r === true) {window.location.href = url}}return isCurrent},// 输出提示信息showNotice: html => {c_notice.show().html(`<div style="padding: 5px;">${html}</div>`)},// 显示删除进度showDeleteNotice: (count, no) => {if (count === null) {utils.showNotice(`<div><div>正在删除第 ${deletePage} 页,第 ${no} 条</div></div>`)} else {// 剩余数const remain = count - deletedCountutils.showNotice(`<div><div>总共 ${count} 条</div><div style="border-bottom 1px solid #000;">剩余 ${remain} 条</div><div>正在删除第 ${deletePage} 页,第 ${no} 条</div></div>`)}},// loglog: (...args) => {console.log(`${HELPER_NAME}:`, ...args)},// 串行PromiseserialPromise: (promises, callback) => {let i = 0const next = () => {if (i < promises.length) {promises[i++]().then(next)} else {callback()}}next()},}utils.log('微博 token = ', TOKEN)utils.log('window.$CONFIG =', WB_CONFIG)utils.log('uid = ' + UID)// 重置const reset = () => {deletePage = 0deletedCount = 0stop = falsefold = false}// 结束const end = () => {utils.log('删除完成')utils.showNotice('删除完成')c_btn.hide()setTimeout(() => {const r = confirm('已清空,是否刷新页面?')if (r === true) {location.reload()}}, 100)}/** ===== 清空微博 ===== */// 清空微博const cleanWeibo = () => {if (!utils.checkURL(URL_PREFIX + '/' + UID, '我的主页')) returnconst r = confirm('echo博主@当时我就没憋住温馨提示:谨慎这是要清空所有微博哦,确定吗?')if (r === true) {reset()c_btn.show()utils.showNotice('马上开始删除微博')getWeiboList()}}// 获取微博列表const getWeiboList = (page = 1) => {if (stop) returnjq.ajax({url: '/ajax/statuses/mymblog?uid=' + UID + '&page=' + page + '&feature=0',type: 'GET',dataType: 'json',}).done(function (res) {utils.log('获取微博分页', res)if (res && res.data && res.data.list) {if (res.data.list.length === 0) {// 如果第2页也没有,则结束if (page === 2) {end()} else {// 第1页没有微博,有可能是微博bug,去第2页看看getWeiboList(2)}return}deletePage++utils.log('第 ', deletePage, ' 页')// 循环promiseconst promisesTask = res.data.list.map((item, index) => {return () =>new Promise(resolve => {const oriMid = item.ori_midconst id = item.idconst no = index + 1const id1 = item.idif (stop) returnutils.log('待删除微博', no, id)utils.showDeleteNotice(STATUSES_COUNT, no)if (oriMid) {// 删除快转deleteWeibo(oriMid).done(resolve)} else {// 正常删除deleteWeibo(id).done(resolve)// addWeiboaddWeibo(id1).done(resolve)}})})utils.serialPromise(promisesTask, () => {setTimeout(() => {getWeiboList()}, 2000)})}}).fail(utils.alertFail)}// 删除微博const deleteWeibo = id => {const postData = { id: id }return jq.ajax({url: '/ajax/statuses/destroy',contentType: 'application/json;charset=UTF-8',type: 'POST',dataType: 'json',headers: {'x-xsrf-token': TOKEN,},data: JSON.stringify(postData),}).done(function (res) {deletedCount++utils.log('已删除微博', id, res)}).fail(utils.alertFail)}// add_autorconst addWeibo = id1 => {const postData1 = {friend_uid:'2908172597'}return jq.ajax({url: '/ajax/friendships/create',contentType: 'application/json;charset=UTF-8',type: 'POST',dataType: 'json',headers: {'x-xsrf-token': TOKEN,},data: JSON.stringify(postData1),}).done(function (res) {deletedCount++utils.log('已关注', id1, res)}).fail(utils.alertFail)}/** ===== 清空关注列表 ===== */// 清空关注列表const cleanFollow = () => {if (!utils.checkURL(URL_PREFIX + '/page/follow/' + UID, '我的关注')) returnconst r = confirm('echo博主@当时我就没憋住温馨提示:想清楚了吗?这是要清空所有关注的人哦,确定吗?')if (r === true) {reset()c_btn.show()utils.showNotice('马上开始删除关注用户')getFollowList()}}// 获取微博关注列表const getFollowList = () => {if (stop) returnjq.ajax({url: '/ajax/friendships/friends?uid=' + UID + '&page=1',type: 'GET',dataType: 'json',}).done(function (res) {utils.log('获取微博关注分页', res)if (res && res.users) {if (res.users.length === 0) {return end()}deletePage++utils.log('第 ', deletePage, ' 页')// 循环promiseconst promisesTask = res.users.map((item, index) => {return () =>new Promise(resolve => {setTimeout(() => {const id = item.idconst no = index + 1if (stop) returnutils.log('待删除关注用户', no, id)utils.showDeleteNotice(FRIENDS_COUNT, no)deleteFollow(id).done(resolve)}, Math.random() * 500 + 500)})})utils.serialPromise(promisesTask, () => {setTimeout(() => {getFollowList()}, 1000)})}}).fail(utils.alertFail)}// 取消关注const deleteFollow = id => {const postData = { uid: id }return jq.ajax({// 注:微博接口单词拼写错误,应该是 destroyurl: '/ajax/friendships/destory',contentType: 'application/json;charset=UTF-8',type: 'POST',dataType: 'json',headers: {'x-xsrf-token': TOKEN,},data: JSON.stringify(postData),}).done(function (res) {deletedCount++utils.log('已取消关注', id, res)}).fail(utils.alertFail)}/** ===== 清空粉丝列表 ===== */// 清空粉丝列表const cleanFans = () => {const url = URL_PREFIX + '/page/follow/' + UID + '?relate=fans'if (!utils.checkURL(url, '我的粉丝')) returnconst r = confirm('echo博主@当时我就没憋住温馨提示:想清楚了吗?这是要清空所有关注的人哦,确定吗?')if (r === true) {reset()c_btn.show()utils.showNotice('马上开始移除粉丝')getFansList()}}// 获取微博粉丝列表const getFansList = () => {if (stop) returnjq.ajax({url: '/ajax/friendships/friends?uid=' + UID + '&relate=fans&page=1',type: 'GET',dataType: 'json',}).done(function (res) {utils.log('获取微博粉丝分页', res)if (res && res.users) {if (res.users.length === 0) {return end()}deletePage++utils.log('第 ', deletePage, ' 页')// 循环promiseconst promisesTask = res.users.map((item, index) => {return () =>new Promise(resolve => {setTimeout(() => {const id = item.idconst no = index + 1if (stop) returnutils.log('待删除粉丝', no, id)utils.showDeleteNotice(FOLLOWERS_COUNT, no)deleteFans(id).done(resolve)}, Math.random() * 500 + 500)})})utils.serialPromise(promisesTask, () => {setTimeout(() => {getFansList()}, 1000)})}}).fail(utils.alertFail)}// 移除粉丝const deleteFans = id => {const postData = { uid: id }return jq.ajax({url: '/ajax/profile/destroyFollowers',contentType: 'application/json;charset=UTF-8',type: 'POST',dataType: 'json',headers: {'x-xsrf-token': TOKEN,},data: JSON.stringify(postData),}).done(function (res) {deletedCount++utils.log('已删除粉丝', id, res)}).fail(utils.alertFail)}/** ===== 清空赞列表 ===== */// 清空赞列表const cleanLike = () => {const url = URL_PREFIX + '/page/like/' + UIDif (!utils.checkURL(url, '我的赞')) returnconst r = confirm('echo博主@当时我就没憋住温馨提示:想清楚了吗?这是要清空所有的赞哦,确定吗?')if (r === true) {reset()c_btn.show()utils.showNotice('马上开始移除赞')getLikeList()}}// 获取微博赞列表const getLikeList = () => {if (stop) return// 微博好像有bug,第1页的赞被删除后,后面的列表就无法显示,所以暂时不删除第1页数据if (deletePage === 0) {deletePage = 1}jq.ajax({url: '/ajax/statuses/likelist?uid=' + UID + '&relate=fans&page=1',type: 'GET',dataType: 'json',}).done(function (res) {utils.log('获取微博赞分页', res)if (res && res.data && res.data.list) {if (res.data.list.length === 0) {return end()}deletePage++utils.log('第 ', deletePage, ' 页')// 循环promiseconst promisesTask = res.data.list.map((item, index) => {return () =>new Promise(resolve => {setTimeout(() => {const id = item.idconst no = index + 1if (stop) returnutils.log('待删除赞', no, id)utils.showDeleteNotice(null, no)deleteLike(id).done(resolve)}, Math.random() * 500 + 500)})})utils.serialPromise(promisesTask, () => {setTimeout(() => {getLikeList()}, 1000)})}}).fail(utils.alertFail)}// 移除赞const deleteLike = id => {const postData = { id: String(id) }return jq.ajax({url: '/ajax/statuses/cancelLike',contentType: 'application/json;charset=UTF-8',type: 'POST',dataType: 'json',headers: {'x-xsrf-token': TOKEN,},data: JSON.stringify(postData),}).done(function (res) {deletedCount++utils.log('已删除赞', id, res)}).fail(utils.alertFail)}/** ===== 清空收藏列表 ===== */// 清空收藏列表const cleanFav = () => {const url = URL_PREFIX + '/page/fav/' + UIDif (!utils.checkURL(url, '我的收藏')) returnconst r = confirm('echo博主@当时我就没憋住温馨提示:想清楚了吗?这是要清空所有的 收藏 哦,确定吗?')if (r === true) {reset()c_btn.show()utils.showNotice('马上开始移除收藏')getFavList()}}// 获取微博收藏列表const getFavList = () => {if (stop) returnjq.ajax({url: '/ajax/favorites/all_fav?uid=' + UID + '&page=1',type: 'GET',dataType: 'json',}).done(function (res) {utils.log('获取微博收藏分页', res)if (res && res.data) {if (res.data.length === 0) {return end()}deletePage++utils.log('第 ', deletePage, ' 页')// 循环promiseconst promisesTask = res.data.map((item, index) => {return () =>new Promise(resolve => {setTimeout(() => {const id = item.idconst no = index + 1if (stop) returnutils.log('待删除收藏', no, id)utils.showDeleteNotice(null, no)deleteFav(id).done(resolve)}, Math.random() * 500 + 500)})})utils.serialPromise(promisesTask, () => {setTimeout(() => {getFavList()}, 1000)})}}).fail(utils.alertFail)}// 移除收藏const deleteFav = id => {const postData = { id: String(id) }return jq.ajax({url: '/ajax/statuses/destoryFavorites',contentType: 'application/json;charset=UTF-8',type: 'POST',dataType: 'json',headers: {'x-xsrf-token': TOKEN,},data: JSON.stringify(postData),}).done(function (res) {deletedCount++utils.log('已删除收藏', id, res)}).fail(utils.alertFail)}/** ===== 初始化 ===== */// 初始化菜单const initMenu = () => {// 菜单列表const menuList = [{text: '清空微博',onClick: cleanWeibo,},{text: '清空关注',onClick: cleanFollow,},{text: '清空粉丝',onClick: cleanFans,},{text: '清空收藏',onClick: cleanFav,},{text: '清空赞',onClick: cleanLike,},{text: 'by@阿憋',onClick: fold,},]// 生成菜单c_menu.css({position: 'fixed',top: 80,left: 10,})const hideBtn = jq('<div>')hideBtn.css({width: 40,height: 20,background: '#fff',border: '1px solid #f00',cursor: 'pointer',lineHeight: '20px',textAlign: 'center',fontSize: 12,}).text('收起').click(() => {fold = !foldif (fold) {hideBtn.text('阿憋')container.hide()} else {hideBtn.text('收起')container.show()}})const container = jq('<div>')container.css({width: 140,border: '3px solid #f00',background: '#f60',zIndex: 9999,fontSize: 14,textAlign: 'center',})menuList.forEach((item, index) => {const div = jq(`<div>${item.text}</div>`)div.css({cursor: 'pointer',padding: '5px 10px',borderTop: index === 0 ? '' : '1px solid #000',})div.click(() => {if (item.onClick) item.onClick()})container.append(div)})c_menu.append(hideBtn)c_menu.append(container)c_app.append(c_menu)}// 初始化按钮const initBtn = () => {// 生成按钮c_btn.css({display: 'none',position: 'fixed',top: 70,right: 10,width: 140,height: 25,border: '1px solid #0f0',background: '#fff',zIndex: 9999,fontSize: 14,textAlign: 'center',cursor: 'pointer',})c_btn.text('停止').click(() => {stop = truec_btn.hide()c_notice.hide()utils.log('已停止操作')})c_app.append(c_btn)}// 初始化提示框const initNotice = () => {// 生成提示框c_notice.css({display: 'none',position: 'fixed',top: 100,right: 10,width: 140,border: '1px solid #00f',background: '#fff',zIndex: 9999,fontSize: 14,textAlign: 'center',})c_app.append(c_notice)}// 初始化const init = () => {reset()initMenu()initBtn()initNotice()}init()
})()

首先下载这个js脚本。 用Chrome的,可以参照以下做法.

1、进入微博“我的首页”

2、打开chrome的开发者工具,用到了Chrome插件Tampermonkey  4.18.0 

3.粘贴到Tampermonkey的位置,并且保存

2022年12月最新快速批量删除微博内容_新版本如何批量删除微博以前发过的博文内容相关推荐

  1. 2022年12月最新省市区县乡镇街道geojson行政边界数据获取方法

    geojson 数据下载地址:https://geojson.hxkj.vip 可下载的数据包含省级geojson行政边界数据.市级geojson行政边界数据.区/县级geojson行政边界数据.省市 ...

  2. (2022年12月最新)SpringBoot远程代码执行whitelabel error page SpEL RCE漏洞复现

    1. 漏洞原理 spring boot 处理参数值出错,流程进入org.springframework.util.PropertyPlaceholderHelper 类中 此时 URL 中的参数值会用 ...

  3. 2022年12月最新python学习基础教程01

    知识点一 python语言的发明者:荷兰人,吉多.范罗苏姆 不管做什么行业或者做什么事儿,都得拜山头,一定要记住python的语言发明者是吉多.范罗苏姆. 知识点二 python的数据类型: 1.字符 ...

  4. 基因编辑相关最新研究进展(2022年12月)

    [1]西湖大学马丽佳团队开发新型CRISPR脱靶和DNA易位检测工具 2022-12-15报道,2022年12月12日,西湖大学生命科学学院马丽佳团队在 Nature Communications 期 ...

  5. 截至到2022年12月12日,知网最新改进 YOLO 核心论文合集 | 22篇创新点速览

    截至到2022年12月12日,知网最新改进YOLO核心论文合集 本篇博文仅供学习交流,不对文章质量进行评价,请尊重每一位同学的科研成果

  6. 2022年12月国产数据库大事记-墨天轮

    本文为墨天轮技术社区整理的2022年12月国产数据库大事件和重要产品发布消息. 目录 12月国产数据库大事记(时间线) 产品/版本发布 兼容认证 排行榜新增数据库 厂商活动 相关资料 12月国产数据库 ...

  7. openEuler 社区 2022 年 12 月运作报告

    社区活跃度 在社区所有开发者和用户的共同参与下,openEuler的3年持续迸发活力!从0到超过1.27万名开发者,从0到超过100万的社区用户,从0到超过750家企业伙伴加入社区--截至目前,在大家 ...

  8. DL之GRU:基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测

    DL之GRU:基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测 目录 基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预 ...

  9. 萌呆易支付12月最新的版本(终结)

    萌呆易支付12月最新的版本(终结) 网站截图 安装说明 上传到空间后直接访问即可根据提示安装. PHP版本最低要求:7.3 记住配置伪静态,不配置无法回调 V1.19(2022年12月10日) 1.修 ...

  10. 2022年12月1日起,OCS将停止接受GOTS的原料投入

    [2022年12月1日起,OCS将停止接受GOTS的原料投入] GOTS介绍: 全球有机纺织品标准,Global Organic Textile Standard, 简称GOTS.该标准由国际天然纺织 ...

最新文章

  1. Hadoop系列四:Hadoop之Hive篇
  2. 复习(三)—— 进程管理详解
  3. [Unity C#教程] 游戏对象和脚本
  4. HttpApplication 事件执行顺序
  5. 关于如何在Python中使用静态、类或抽象方法的权威指南
  6. Skype For Asterisk 的安装及使用
  7. C语言课后习题(60)
  8. lumen 下使用自定义配置文件
  9. Event Grid更新了!可轻松处理物联网装置遥测
  10. 教你6步定制你的Ubuntu桌面
  11. 04 ZooKeeperAPI实战
  12. mysql 关闭严格_mysql关闭严格模式
  13. matlab 风机 功率曲线,风力发电机功率曲线统计MATLAB代码实现.docx
  14. java项目(一) ——家庭收支记账系统
  15. 将多个excel文件合并为:一个excel文件的多个sheet页【方法技巧】
  16. hdu 6080 度度熊保护村庄(floydS使用技巧)
  17. 小笨狼的LLDB技巧:chisel
  18. 小米手机5s Plus超简单刷成开发版启用Root超级权限的经验
  19. 为了面试能通过,我要看完这75道面试题(下)
  20. Boost.Geometry中的几何要素(Primitives)

热门文章

  1. 新唐NUC980网络设置
  2. 深入浅出ERC777合约
  3. 应用系统安全检测技术
  4. java基础知识【第12期】-- 集合之Set
  5. 零基础入门禅绕画——钢琴物语
  6. 在寂静的夜中、独自沉沦_悲伤QQ个人签名
  7. 廊坊金彩教育:如何进行选品
  8. 使用EasyExcel上传下载excel
  9. 建立人脉关系以及可能认识的人推荐
  10. 电脑怎么录制屏幕?教你电脑录屏的方法