美文网首页
批量删除微博js代码

批量删除微博js代码

作者: 杨同学a | 来源:发表于2023-01-11 13:15 被阅读0次
  • 直接复制以下代码即可
const script = document.createElement('script')
script.setAttribute('src', 'https://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3.min.js')
script.onload = function() {
  var latestTime = Date.now()
 
  async function scrollToBottom() {
    $('html, body').scrollTop($(document).height())
    await sleep(800) // 等下一页加载完,(微博@当时我就没憋住)
 
    // 往下拉,拉到底部
    if ($('[node-type="lazyload"]').length && !$('a.page.prev').length) {
      scrollToBottom()
      return
    }
 
    console.log('加载完毕。')
    $('html, body').scrollTop(0)
    console.log('开始删除。')
    deleteWeibo()
  }
 
  async function deleteWeibo() {
    if ($('a[action-type="feed_list_delete"]').length > 1) {
      const $date = $('.WB_detail:first a[date]')
      const time = +$date.attr('date')
      // 设定一个时间,当删除程序发现要删除的微博发布时间大于这个时间时,删除程序直接停止
      const date = +new Date('2016-01-01 00:00:00')
 
      if (time > date) {
        console.log('到达了设定的时间,停止删除。')
        clearInterval(timer)
        return
      }
 
 
      $('a[action-type="feed_list_delete"]')[0].click()
      await sleep(500) // 等删除确认窗口打开
      $('a[action-type="ok"]').each(function() { this.click() })
      await sleep(500) // 等待删除请求完毕
      latestTime = Date.now() // 记录最后一次删除操作时间
      deleteWeibo()
    }
    else {
      // 处理最后一条
      var mid = $('div[mid]').last().attr('mid')
      // 进入下一页之后,上一页的最后一条没有被删掉,用 ajax 将它删除
      const deleteLastOne = () => $.post('https://weibo.com/aj/mblog/del', { mid: mid }).fail(async () => {
        console.log('删除最后一条失败,正在尝试重新删除。')
        await sleep(1000)
        deleteLastOne()
      })
      deleteLastOne()
 
      console.log('进入上一页。')
      $('a.page.prev')[0].click()
      await sleep(1000) // 确保下一页已经加载
      scrollToBottom()
    }
  }
 
  scrollToBottom()
 
  // // 心跳检测,是否还在正常跑,如果没有跑了,就重启服务
  const heartbeat = 30000
  var timer = setInterval(() => {
    const currentTime = Date.now()
    if (currentTime - latestTime < heartbeat * 1.5) {
      return
    }
    console.log('检测到任务失败,正在尝试重新启动。')
    $('[action-type="feed_list_page_morelist"] ul li:first a')[0].click() // 通过点击全部按钮来恢复加载微博
    $('html, body').scrollTop(0)
  }, heartbeat)
}
document.head.appendChild(script)
  • 版本二 (效率更高)

var wb_url = "https://www.weibo.com/";
// 这个本人做了处理 我只做有筛选条件的 才会调用删除方法 如果不需要删除搜索结果的微博把下面这行改成即可(只要复制 /**  **/ 中间的代码就可以 )
/**
if(window.location.host == "weibo.com" ){
    wb_url = "https://weibo.com/";
}else{
  wb_url = "";
}
**/
if(window.location.host == "weibo.com" && window.location.search.indexOf('key_word')  != -1){
    wb_url = "https://weibo.com/";
}else{
  wb_url = "";
}

//删除本条微博
function del_weibo(id){
    console.log(id);
    var postdata = "mid="+id;
    delwb_url = wb_url  + "aj/mblog/del?ajwvr=6";
    fetch(delwb_url, 
    {
        "credentials":"include",
        "headers":{
                "content-type":"application/x-www-form-urlencoded",
        },
        "body":postdata,
        "method":"POST","mode":"cors"
    }).then(response => console.log(response) )
    .then(data => console.log(data))
    .catch(error => console.log(error));
}

//删除本页全部微博
function del_page(){
    var wb_list = document.querySelectorAll(".S_txt2");
    if(wb_list.length == 0){
        console.log("暂无可删除微博");
    }
    var i = 1;
    for(var t of wb_list){
        if(t.name){
            //限制请求速度
            setTimeout(function(t) {
                del_weibo(t.name);
                var pppp_node = t.parentNode.parentNode.parentNode.parentNode;
                pppp_node.parentNode.removeChild(pppp_node);
            }, 200*i,t);
            i++;
        }
    }
    if(i == 1){
        console.log("暂无可删除微博:");
        // 正在加载中,请稍候...(滚动鼠标) #
        // 第几页,下一页(点击翻页) # 
        //查看更早微博 #
    }
}


// 刷新微博页面
function auto_update_page(){
    var pages = document.querySelectorAll(".W_pages > a");
    if(pages.length > 0){
        var next_page = pages[pages.length-1];
        console.log("下一页");//or上一页...
        next_page.click();
    }else{
        //
        var more_arr = document.getElementsByClassName("WB_cardmore");
        if((more_arr.length != 0) && more_arr[more_arr.length-1].innerText.trim().startsWith("查看更早微博")){
            more_arr[more_arr.length-1].click();
        }
        var wait_load = document.getElementsByClassName("W_loading");
        if(wait_load.length != 0){
            console.log(new Date().toLocaleTimeString() + ":" + wait_load[0].parentNode.innerText.trim());
            window.scrollTo(0, 100000);//滚动到最低部(触发自动加载微博)
            setTimeout(function(){
                window.scrollTo(0, 100);
            },800);
        }
    }
}


function del_all_weibo(){
    if(window.del === false){
        return;
    }
    del_page();
    auto_update_page();//尝试自动刷新
}

 // 开始运行程序
if(document.URL.startsWith(wb_url)){
    var may_url = wb_url + $CONFIG.uid + "?is_all=1";
    console.log("如果微博未被删除,请点击下面链接重试:");
    console.log(may_url)
    // 定时执行删除
    window.setInterval(del_all_weibo,4000);
}else{
    alert("请在 " + wb_url +  " 站点下的微博列表中重新执行删除脚本。");
    if(navigator.userAgent.includes("Mobile")){
        alert("Chrome 用户请回到控制台,按下 Ctrl+Shift+M 切换回电脑版完整视图");
    }
    window.location.replace(wb_url);
}

相关文章

  • 批量删除微博的代码

    这是网络上查找到的 windows 批量删除微博的代码。如果想批量删除微博,具体步骤如下: 1、登录微博,打开主页...

  • js批量删除微博教程

    第一步也是最关键的一步,先搜索出所有带关键字的微博,不然的话就是全部微博删除了,慎重! 如果有下一页可的话需要重复...

  • 批量删除微博代码/批量取关

    WEB登录 我的主页 F12控制台粘贴代码 Enter运行 删除 取关

  • 批量删除微博

    在旧版的我的主页页面:

  • 基于Django添加批量更新功能

    现在有一个需求,需要添加批量修改和批量删除功能 如上图中标签不统一,需要修改 HTML代码: JS部分代码: 后端代码:

  • 批量删除新浪微博

    直接在控制台复制粘贴如下代码即可;删除的是当前页面所展示的所有微博

  • 如何批量删除微博

    参考这个[https://www.zhihu.com/question/19808336]首先调到你先删除的页面,...

  • JavaScript脚本自动操作浏览器

    利用js模拟人为操作可以做很多机械化的操作,例如批量删除微博 有这方面需求的可以简单的学习js然后对就可以做很多很...

  • es 批量删除

    es.bulk 可用于批量删除 更新 新建操作 根据id批量删除示例代码: 批量新增: 批量更新

  • 新浪微博批量删除文章

    js代码 使用方法 将代码复制粘贴到微博主页的控制台

网友评论

      本文标题:批量删除微博js代码

      本文链接:https://www.haomeiwen.com/subject/oabbcdtx.html