新浪博客(sina blog)批量删除代码

今天想再次删除新浪博客中的文章,同时包括垃圾箱中的.

操作了几个觉得太郁闷了,只能一条一条的删除,有1k左右条呢,

得操作多久?

看了一下,需要保留的只是几条;

于是查看了下html代码,找到规则,写了节js代码来自动操作

,然后再从垃圾箱中还原那几个文章,其余的全部清理掉:


博文列表页删除代码

打开首页,会看到列表后面有一个更多剪头,点击时,会弹出下拉菜单,里面有一个删除按钮:


操作步骤:

打开sina blog首页:

在浏览器中按f12打开html调试面板;

在console面板中输入以下代码:

//取得全部的列表
var as = document.getElementsByClassName('atc_more');


var html='';
for(var i = 0;i < as.length;i++){
<span style="white-space:pre">	</span>if (as[i].id.indexOf('a_more_') < 0) continue;//如果得到列表不是想要的按钮跳过
<span style="white-space:pre">	</span>html += '<input type="hidden" name="blog_id[]" value="'+as[i].id.replace('a_more_', '')+'" />';//得到文章id,拼接出post时的input
};

//生成一个form
document.body.innerHTML = '<form action="http://control.blog.sina.com.cn/admin/article/article_del_recycle.php?domain=1" id="qidizi" target="qidizi" method="POST" > <input name="uid" value="2118937395" />'+html+'</form>';
//新窗口提交form
document.getElementById('qidizi').submit();
//刷新当前页面,可能删除提交慢话,当前刷新列表就还会出现已经请求删除过的,没事,就多按几次键吧,反正很快
location.reload();




运行

会弹出一个新页面,这个页面是请求删除当前页全部文章的;

首页会自动刷新,

再次运行上页的代码,这样,就能把全部blog删除了;




------删除回收箱中的


打开回收箱url

按f12打开调试面板;

在console中输入以下代码:

var as = document.getElementsByClassName('CP_a_fuc');//得到全部的列表
var s='';
for(var i = 0;i < as.length;i++){
if (as[i].href.indexOf('#') < 0) continue;//里面好像有一个javascript什么的,会导致请求出错,所以过街过滤
s += '&blog_id[]='+as[i].href.replace(/^.+#/g, '');//querystring上拼接要删除的id
}
;window.open('http://control.blog.sina.com.cn/admin/article/article_recycle_del.php?uid=2118937395&varname=requestId_48399008&'+s);//新窗口打开删除请求
location.reload();//当前页面刷新


运行,

刷新后,再次运行上面代码.

ok.

所有的文章都清理掉了;


注意,上面写得比较随意.

请把id号换成自己的.

请求删除页面json中返回B数字值就是表示请求失败;

A6什么的就表示成功;


----------------不理理的内容-----------补充最新的移回回收站代码--------------


// 以下代码只是把正常显示的blog移回回收站,如果需要回收站删除,请根据代码自己修改,回收站删除没有跨域问题,容易解决;
// 以下代码是很随意的代码,最好有js基础,能自己调整,不保证每个人都可以使用;
// 使用方法:打开个人blog首页,把下面的所有代码在chrome的console中粘贴回车执行;出错时,刷新重新运行基本上可以解决;目前只测试开始,没有测试删除完成的逻辑;
+function() {
    function log() {
        console.log.apply(console.log, arguments);
    }

    try {
        // 这里不考虑浏览器的兼容性,最好使用chrome最新版本来操作
        // 通过blog首页url获得uid,如果格式变化,请自行调整
        var uid = location.href
                .match(/^https?\:\/\/blog\.sina\.com\.cn\/u\/(\d+)$/);

        if (!uid) {
            return alert('获取uid失败,请登录新浪blog,并打开blog的个人首页再操作;如打开:http://blog.sina.com.cn/u/2500204025');
        }

        uid = uid[1];
        var form, blogIdInput, titleInput, submitInput, prevId;
        var jq = document.createElement('script');
        jq.onload = function() {
            clearTimeout(jser);
            log('注入jquery成功');
            var iframe = document.createElement('div');
            form = $('<form style="background-color:red;z-index:99999999;position:fixed;top:0;left:0;" class="jsQidiziForm" target="_qidizi" action="http://control.blog.sina.com.cn/admin/article/article_del_recycle.php?domain=1" method="POST">'
                    + '标题<input name="title" class="title" type="button" value="" /><br>'
                    + 'uid:<input name="uid" value="'
                    + uid
                    + '" /><br>'
                    + 'blogId:<input name="blog_id[]" class="blog_id" value="" /><br>'
                    + '<input type="submit" class="submit" /><br>'
                    + '<iframe name="_qidizi" width="1000" class="qidiziIframe" height="100"></iframe>'
                    + '</form>');
            form.appendTo('body');
            blogIdInput = form.find('.blog_id');
            titleInput = form.find('.title');
            submitInput = form.find('.submit');
            getBlogId();
        };
        jq.src = 'http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js';
        document.body.appendChild(jq);
        log('尝试注入jquery.js...');

        var jser = setTimeout(function() {
            alert('加入jquery.js失败,请检查代码');
        }, 1000 * 60 * 6);

        function getBlogId() {
            log('尝试开始获取下条blog id');
            $
                    .get(
                            location.href,
                            {
                                rnd : +new Date
                            },
                            function(html) {
                                // 使用text加载更快,自己用正则解析,sina的标题html代码应该是这样的:
                                // <div id="t_10001_950615f901017pca"
                                // class="blog_title">
                                // <a
                                // href="http://blog.sina.com.cn/s/blog_950615f901017pca.html"
                                // target="_blank">新娘肌肤白皙透亮的秘诀</a>
                                // </div>
                                var title = html
                                        .match(/class\s*\s*\=\s*['"]blog_title['"][^>]*>[^<]*<a\s+[^>]+blog\.sina\.com\.cn\/s\/blog_(\w+)\.html['"][^>]+>([^<]+)/);

                                if (!title) {
                                    return alert('从blog首页的html代码中找不到要删除的blog对象了,可能已经全部删除完成了,或是sina的代码改变了,请刷新blog的个人首页查看确认');
                                }

                                log('匹配到下条blog成功...');
                                del(title[1], title[2]);
                            }, 'text');
        }
        function del(blogId, blogTitle) {
            if (prevId == blogId) {
                return alert('删除blogid是' + blogId
                        + '发生异常,上轮删除的blogid也是这个,请确认删除代码是否还有效;或是刷新重新来过');
            }

            prevId = blogId;
            blogIdInput.val(blogId);
            titleInput.val(blogTitle);
            log('开始删除提交...');
            form.get(0).submit();
            var iframe = $('.qidiziIframe').get(0);
            var count = 1;
            log('定时检查跨域删除状态...');
            var timer = setInterval(function() {

                try {
                    var iframeDocument = iframe.contentDocument
                            || iframe.contentWindow.document || 0;
                } catch (e) {
                    log('获取iframe出错,浏览器不支持,也可能加载未完成,错误如下:', e);
                }

                if ('complete' != iframeDocument.readyState) {
                    submitInput.val('等待删除页面为完成状态:' + count++ + '秒');
                    return;
                }

                clearInterval(timer);
                log('目前懒得去获取处理结果,假设删除完成了...');
                getBlogId();
            }, 1000);
        }

    } catch (e) {
        log('代码出错,请调整:', e);
    }
}();


### 如何通过程序或工具批量删除新浪微博的帖子 #### 使用微博API实现批量操作 新浪微博官方并未提供直接的批量删除功能,因此开发者通常借助其开放平台中的API来完成此类需求。要实现这一目标,需遵循以下逻辑: 1. **创建应用并获取权限** 需要在新浪开放平台上注册一个应用,并申请相应的权限范围(如`statuses_destroy_batch`)。这一步骤涉及OAuth 2.0认证机制[^4]。 2. **安装SDK或自行编写请求代码** 新浪提供了多种编程语言的支持包,例如Java SDK或其他第三方库。如果不想依赖现成的SDK,则可以直接向API端点发送HTTP请求。 3. **获取待处理微博列表** 调用 `statuses/user_timeline.json` 接口读取用户的微博时间线数据[^2]。可以根据特定条件筛选出需要被移除的目标项,比如只保留纯文字而不含多媒体附件的内容。 4. **执行删除动作** 对于每一条选定的微博ID(`id`),调用 `statuses/destroy/{id}.json` 方法逐一销毁它们;或者尝试使用更高效的批量化接口(如果有),减少网络往返次数提高效率[^1]。 以下是采用Python脚本的一个简单示例: ```python import requests from urllib.parse import urlencode def delete_weibo(weibo_id, access_token): url = f"https://api.weibo.com/2/statuses/destroy/{weibo_id}.json" params = {"access_token": access_token} response = requests.post(url, data=params) return response.status_code == 200 # Example usage (replace with actual tokens and IDs) if __name__ == "__main__": ACCESS_TOKEN = "your_access_token_here" WEIBO_IDS_TO_DELETE = ["123456789", "987654321"] success_count = sum(delete_weibo(wb_id, ACCESS_TOKEN) for wb_id in WEIBO_IDS_TO_DELETE) print(f"{success_count} out of {len(WEIBO_IDS_TO_DELETE)} weibos were successfully deleted.") ``` 注意上述仅为演示目的编写的伪代码片段,请根据实际情况调整参数设置以及错误处理部分。 --- #### 工具推荐 除了手动编码外,还有若干在线服务能够协助简化此过程。不过需要注意的是这些外部解决方案可能无法完全满足定制化的需求,同时也存在隐私泄露风险等问题。对于希望快速解决问题而非深入学习技术细节的人来说不失为一种选择[^3]。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值