今天想再次删除新浪博客中的文章,同时包括垃圾箱中的.
操作了几个觉得太郁闷了,只能一条一条的删除,有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 = '';
//新窗口提交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.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);
}
}();