新浪博客(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++){
	if (as[i].id.indexOf('a_more_') < 0) continue;//如果得到列表不是想要的按钮跳过
	html += '';//得到文章id,拼接出post时的input
};

//生成一个form
document.body.innerHTML = '
'+html+'
';
//新窗口提交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 = $('
' + '标题
' + 'uid:
' + 'blogId:
' + '
' + '' + '
'); 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代码应该是这样的: // var title = html .match(/class\s*\s*\=\s*['"]blog_title['"][^>]*>[^<]*]+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); } }();


你可能感兴趣的:(新浪博客(sina blog)批量删除代码)