因为一些黑历史而带来了烦恼,年轻的时候不【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。懂事,以为留下的足迹是好的,如今去看却满【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。目苍夷,鄙夷那时幼稚的自己。好不容易通过【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。邮箱找回了密码,但是发现自己竟然几年之间【原创不易,请尊重版权】【转载请注明来源】发了 4000 多条微博。总不可能一条一本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。条删吧,网上搜了一下,发现了一个自动删除转载请注明出处:www.tangshuang.net【转载请注明来源】的脚本。但是这个脚本在删除时,会将当前页【本文受版权保护】【版权所有】唐霜 www.tangshuang.net全部删除,这回导致微博自动刷新页面,脚本【未经授权禁止转载】【作者:唐霜】也就不能继续执行了。于是做了改进,得到如本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。下代码:
本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。const sleep = (time) => new Promise(resolve => setTimeout(resolve, time))
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)
使用方法:
【本文受版权保护】原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。- 将上方红色字修改为你想要停止的日前,如果【版权所有,侵权必究】【访问 www.tangshuang.net 获取更多精彩内容】要删除全部微博,删除上面灰色部分 【原创不易,请尊重版权】转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.net
- 进入个人中心页面 https://wei本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。bo.com/{weiboid}/pro【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.netfile 【本文首发于唐霜的博客】【作者:唐霜】本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】
- 通过下拉,拉到最底部,出现导航,选择页面【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。,跳转到最后一页 【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。【本文受版权保护】
- 打开开发者工具执行上面的代码。 【访问 www.tangshuang.net 获取更多精彩内容】原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。
这段代码的逻辑是,通过模拟滚动下拉和鼠标未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】点击事件,逐条删除微博(删除太快会出现 【作者:唐霜】转载请注明出处:www.tangshuang.net416 报错,应该是微博后台的一个防 D转载请注明出处:www.tangshuang.net本文作者:唐霜,转载请注明出处。Dos 策略)。但是删除完一页之后,我们【作者:唐霜】【原创内容,转载请注明出处】不能按照正常的逻辑,删除下一页,因为如果本文版权归作者所有,未经授权不得转载。【原创不易,请尊重版权】我们这个时候点击下一页,那么就会实际进入【原创内容,转载请注明出处】【作者:唐霜】下下一页,而不是下一页,中间有一页会被漏【关注微信公众号:wwwtangshuangnet】未经授权,禁止复制转载。掉。了解接口设计的同学应该很清楚,翻页的【作者:唐霜】未经授权,禁止复制转载。时候,当前页是按 limit 的规则输出本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。的,所以在对待这个场景时,我选择通过模拟【版权所有】唐霜 www.tangshuang.net【转载请注明来源】点击“上一页”的办法来解决。这也是为什么未经授权,禁止复制转载。【原创内容,转载请注明出处】要求你在运行这段脚本的时候跳转到最后一页本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。才开始执行。面对前文提到的,会自动刷新的转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net问题,解决办法是,在留下最后一条的时候,本文版权归作者所有,未经授权不得转载。【未经授权禁止转载】不删,而是直接点击“上一页”,这样,页面转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net不会自动刷新,而会把上一页的内容加载进来转载请注明出处:www.tangshuang.net【作者:唐霜】。但是留下的这条怎么办?自己发一个 aj【原创内容,转载请注明出处】原创内容,盗版必究。ax 请求去删除即可。
未经授权,禁止复制转载。【原创不易,请尊重版权】【本文受版权保护】吐槽一下,写多了 ES6+ 的语法,再写未经授权,禁止复制转载。【原创不易,请尊重版权】 function 声明代码感觉不适应。
【原创内容,转载请注明出处】【未经授权禁止转载】【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。互联网的一个特点是开放,但是,比较恐怖的【访问 www.tangshuang.net 获取更多精彩内容】【关注微信公众号:wwwtangshuangnet】一点时,我们没有一个“删除键”。我们个人【原创不易,请尊重版权】【未经授权禁止转载】的信息,一旦上网,就永远留在了网络空间,【版权所有,侵权必究】【访问 www.tangshuang.net 获取更多精彩内容】无论你想不想。这有的时候是好事,可以起到著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】备份作用,但有的时候是坏事。我想,如果我本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。以后做一款应用,一定要提供“备份”“一键【原创内容,转载请注明出处】【版权所有,侵权必究】全删”的功能。
未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net
