事隔经年,今天终于“狠下心”给自己的微博账号解除账号异常限制了,然后心血来潮想清空之前发的所有微博,可是没想到当年年少无知,转发了一大堆乱七八糟的东西,微博已有千余条,手动一条条删除都不知道要删到猴年马月。

已发的微博数量太多

作为一个开发者我知道肯定是可以借助脚本来帮助我完成批量删除操作的,开搞。

当然,为了我的账号安全,不想使用第三方的工具,以避免因为授权所产生的信息泄漏。在手机上使用脚本又不够方便,幸好有网页版,浏览器可以很轻松地帮我执行脚本。

好了,大方向确定了,就开始找轮子了。

是的,你没看错,的确是「找」,而不是「造」,这种小问题肯定有无数人遇到过,何必自己动手呢?

普遍看来,网上使用比较多的是如下代码:

var s = document.createElement('script');
s.setAttribute(
  'src',
  'https://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3.min.js'
);
s.onload = function() {
  setInterval(function() {
    if (!$('a[action-type="feed_list_delete"]')) {
      $('a.next').click();
    } else {
      $('a[action-type="feed_list_delete"]')[0].click();
      $('a[action-type="ok"]')[0].click();
    }

    // scroll bottom let auto load
    $('html, body').animate({ scrollTop: $(document).height() }, 'slow');
    var len = $('div[action-type="feed_list_item"]').length;
    if (len < 5) { $('a[class="page next S_txt1 S_line1"]')[0].click(); }
  }, 800);
};
document.head.appendChild(s);

在浏览器中打开微博并登录,进入到个人主页的页面,打开浏览器的「开发者工具」并切换至「Console」的 Tab,把上方代码复制进去回车执行即可。

脚本执行过程中可能会遇到系统繁忙的弹窗,只要脚本还在执行中可以暂时不理会,待脚本执行结束时刷新页面即可。

系统繁忙提示-微博

该弹窗的原因是由于请求太过频繁导致的,其实脚本所做的工作就是模拟滚动点击等操作,每一次删除或者加载都是一次网络请求,由于脚本的速度远远快于人手操作的速度,在短时间内进行高频的请求就会触发微博的防御。

那如何判断脚本是否还在执行中呢,只要你看到页面有闪动就代表脚本还在执行,如果页面停止闪动了,且你的微博仍未删除完成,可以刷新一次页面再执行脚本,如此反复,直至微博完全删除为止。

实测下来,脚本执行一次最少可以删除三四十条微博内容,我估计应该是一页的微博数,最多的情况下,我没有测试到上限,但是几百条也是没有问题的,只是微博官方可能会有单日删除上限控制,网上有人说是 2000 条左右,我没有考证。


参考内容: