批量删除微信公众号群发文章(半自动)
需求
想要批量删除公众号文章,但公众号提供的接口只有删除那种发布的文章,而不能删除群发的文章,而且删除要扫二维码,想来想去还是直接写了一个简单的 demo 去半自动化的删除过程。
实现
想法是打算写一个 js 然后进入到文章列表页后,在控制台运行,代码如下所示,当然了有不少可以优化的点,比如翻页啥的,但我这边就几页,就懒得接着写了,其实也可以更自动化一点,点击删除按钮出现二维码后截屏发到手机或者虚拟机啥的,然后手机再跑一个扫描的脚本,不过应该不能直接从手机相册里进行扫描吧,有兴趣的去试试咯。
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms))
}
async function deleteElements() {
const articleElements = document.getElementsByClassName('publish_hover_content')
for (let index = 0; index < articleElements.length; index++) {
// 遍历整页的发布文章,这里也可以做个优化逻辑去掉不想删除的文章
const currentArticleElement = articleElements[index]
const selectOptionList = currentArticleElement.getElementsByClassName('select_option')
if (selectOptionList.length > 0) {
const selectOptions = selectOptionList[0].getElementsByTagName('li')
if (selectOptions.length > 0) {
const lastOption = selectOptions[selectOptions.length - 1] // 这个就是删除按钮
lastOption.click()
}
await sleep(2000) // 简单sleep一下等待删除确认框的元素出现
const deleteContentList = currentArticleElement.getElementsByClassName('delect_content')
if (deleteContentList.length > 0) {
const deleteButtonList = deleteContentList[0].getElementsByClassName(
'weui-desktop-btn weui-desktop-btn_primary'
)
if (deleteButtonList.length > 0) {
deleteButtonList[0].click() //点击完删除会出现二维码,扫码时间5秒,我觉得差不多了
await sleep(5000)
}
}
}
}
return 1
}
deleteElements().then((r) => alert('本页执行完毕,请手动翻页'))