相关阅读
杂谈
很多热心网友无意间关注了很多抖音账户,但是发现取消起来非常不方便,今天我们将给大家带来一个快捷的脚本,帮助大家快速清理关注的用户
![图片[1]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230219112237757.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
图文教程
![图片[2]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230219111820370-1024x479.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
进入上述页面后,按F12打开开发者工具,找到控制台,输入下面的代码
// 获取第一个 "取消关注" 按钮并点击
function cancelFollow() {
const cancelBtn = window.document.getElementsByTagName('a')[2];
if (cancelBtn) {
cancelBtn.click();
setTimeout(() => {
const confirmBtns = document.querySelectorAll('button.semi-button-primary');
if (confirmBtns.length > 0) {
for (let i = 0; i < confirmBtns.length; i++) {
const btnText = confirmBtns[i].innerText.trim();
if (btnText === "确认") {
confirmBtns[i].click();
setTimeout(() => {
cancelFollow();
}, 1000);
return;
}
}
}
// 点击完第一个取消关注后,重新查找新的取消关注按钮并执行相应操作
setTimeout(() => {
cancelFollow();
}, 1000);
}, 500);
} else {
console.log("全部用户已取消关注");
}
}
// 执行取消关注流程
cancelFollow();
输入后回车即可
动图演示
请点击弹出后观看动图
![图片[3]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221070841120-1024x508.gif)
ChatGPT编写代码过程
相关阅读
编写代码的思路梳理
以下内容是ChatGPT编写代码的过程,感兴趣您也可以看下呢!
通常情况下,如果我们要求ChatGPT来帮助我们操作页面,我们需要提供尽可能详细的描述,譬如我们要点击什么按钮?我们需要在页面中打开F12,按下蓝色的小箭头,之后去选择我们想要ChatGPT操作的按钮
![图片[4]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221071419494.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
这里就是我们想要ChatGPT点击的取消关注
按钮
<a style="color: rgb(22, 24, 35); font-weight: 600; cursor: pointer;">取消关注</a>
![图片[5]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221071348863-1024x149.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
同样道理,我们需要继续点击,看看接下来会出现什么,我们可以看到会出现弹窗,我们需要选择确认
<div class="buttons--wuLtP"><button class="semi-button semi-button-primary semi-button-light" type="button"><span class="semi-button-content">取消</span></button><button class="semi-button semi-button-primary" type="button"><span class="semi-button-content">确认</span></button></div>
![图片[6]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221071602966-1024x374.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
之后,我们需要确定如何进行循环,譬如是这一页的取消关注
按钮都点击完一遍后,点击下一页吗?这里是ajax加载的,因此不需要切换页面!
与ChatGPT的对话
完整的思路明确之后,请看我们跟ChatGPT的对话,这个是我们对刚才完整逻辑的描述
![图片[7]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221071845345.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后是ChatGPT给出的代码及解释
![图片[8]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221071915281.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
给出代码之后,我们需要运行代码,查看代码是否可以正常运行,如果不能正常运行,有报错则提供报错,没有报错则需要描述页面的情况,尽可能详细反馈。
我们这里是认为没有获取到“确认”二字,导致在弹窗后跳转到其他页面了
![图片[9]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221072011485.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
// 获取指定位置的 "取消关注" 按钮并点击
function cancelFollow(index) {
const cancelBtn = document.querySelectorAll('a[style="color: rgb(22, 24, 35); font-weight: 600; cursor: pointer;"]')[index];
if (cancelBtn) {
cancelBtn.click();
setTimeout(() => {
const confirmBtns = document.querySelectorAll('button.semi-button-primary');
if (confirmBtns.length > 0) {
for (let i = 0; i < confirmBtns.length; i++) {
const btnText = confirmBtns[i].innerText.trim();
if (btnText === "确认") {
confirmBtns[i].click();
setTimeout(() => {
// 判断是否已经取消了所有用户的关注
const newCancelBtns = document.querySelectorAll('a[style="color: rgb(22, 24, 35); font-weight: 600; cursor: pointer;"]');
if (newCancelBtns.length > 0) {
cancelFollow(index);
} else {
console.log("全部用户已取消关注");
// 刷新页面并重新执行取消关注流程
setTimeout(() => {
location.reload();
}, 1000);
}
}, 1000);
return;
}
}
}
// 点击完当前取消关注后,重新查找新的取消关注按钮并执行相应操作
const newCancelBtns = document.querySelectorAll('a[style="color: rgb(22, 24, 35); font-weight: 600; cursor: pointer;"]');
if (newCancelBtns.length > 0) {
cancelFollow(index === 2 ? 1 : 2);
} else {
console.log("全部用户已取消关注");
// 刷新页面并重新执行取消关注流程
setTimeout(() => {
location.reload();
}, 1000);
}
}, 1000);
} else {
console.log("没有找到“取消关注”按钮");
// 刷新页面并重新执行取消关注流程
setTimeout(() => {
location.reload();
}, 1000);
}
}
// 执行取消关注流程
cancelFollow(2);
继续进行测试,发现已经可以实现基本的逻辑了,但是现在会出现一个问题:
那就是页面一共10个按钮,它会1、2、3、4、5、6、7、8、9、10按钮依次点击,并且获取不到新的。
相当于目前的代码已经可以取消一页的关注了,但是我们需要的是取消每一页的关注。
我们可以考虑一个折中的方式,每次都点击第一个、或者第二个a标签代码
![图片[10]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2023/02/20230221082226493.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后修改代码
// 获取第一个 "取消关注" 按钮并点击
function cancelFollow() {
const cancelBtn = window.document.getElementsByTagName('a')[2];
if (cancelBtn) {
cancelBtn.click();
setTimeout(() => {
const confirmBtns = document.querySelectorAll('button.semi-button-primary');
if (confirmBtns.length > 0) {
for (let i = 0; i < confirmBtns.length; i++) {
const btnText = confirmBtns[i].innerText.trim();
if (btnText === "确认") {
confirmBtns[i].click();
setTimeout(() => {
cancelFollow();
}, 1000);
return;
}
}
}
// 点击完第一个取消关注后,重新查找新的取消关注按钮并执行相应操作
setTimeout(() => {
cancelFollow();
}, 1000);
}, 1000);
} else {
console.log("全部用户已取消关注");
}
}
// 执行取消关注流程
cancelFollow();
这里可以进行延迟的优化
// 点击完第一个取消关注后,重新查找新的取消关注按钮并执行相应操作
setTimeout(() => {
cancelFollow();
}, 1000);
}, 1000);
} else {
console.log("全部用户已取消关注");
}
我们可以将1000
改成500
提高点击确认的速度
// 点击完第一个取消关注后,重新查找新的取消关注按钮并执行相应操作
setTimeout(() => {
cancelFollow();
}, 1000);
}, 500);
} else {
console.log("全部用户已取消关注");
}
- 最新
- 最热
只看作者