抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本

抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本

相关阅读

杂谈

很多热心网友无意间关注了很多抖音账户,但是发现取消起来非常不方便,今天我们将给大家带来一个快捷的脚本,帮助大家快速清理关注的用户

图片[1]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog

图文教程

图片[2]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog

进入上述页面后,按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

ChatGPT编写代码过程

相关阅读

编写代码的思路梳理

以下内容是ChatGPT编写代码的过程,感兴趣您也可以看下呢!

通常情况下,如果我们要求ChatGPT来帮助我们操作页面,我们需要提供尽可能详细的描述,譬如我们要点击什么按钮?我们需要在页面中打开F12,按下蓝色的小箭头,之后去选择我们想要ChatGPT操作的按钮

图片[4]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog

这里就是我们想要ChatGPT点击的取消关注按钮

<a style="color: rgb(22, 24, 35); font-weight: 600; cursor: pointer;">取消关注</a>
图片[5]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog

同样道理,我们需要继续点击,看看接下来会出现什么,我们可以看到会出现弹窗,我们需要选择确认

<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

之后,我们需要确定如何进行循环,譬如是这一页的取消关注按钮都点击完一遍后,点击下一页吗?这里是ajax加载的,因此不需要切换页面!

与ChatGPT的对话

完整的思路明确之后,请看我们跟ChatGPT的对话,这个是我们对刚才完整逻辑的描述

图片[7]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog

然后是ChatGPT给出的代码及解释

图片[8]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog

给出代码之后,我们需要运行代码,查看代码是否可以正常运行,如果不能正常运行,有报错则提供报错,没有报错则需要描述页面的情况,尽可能详细反馈。

我们这里是认为没有获取到“确认”二字,导致在弹窗后跳转到其他页面了

图片[9]-抖音如何批量取消关注?| 全网首发 | 使用ChatGPT写一个自动化JS脚本-FancyPig's blog
// 获取指定位置的 "取消关注" 按钮并点击
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

然后修改代码

// 获取第一个 "取消关注" 按钮并点击
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("全部用户已取消关注");
  }

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 共10条

请登录后发表评论