抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本

前言

很多熱心網(wǎng)友無意間關(guān)注了很多抖音賬號(hào),卻發(fā)現(xiàn)取消起來很不方便。今天,我們將為您帶來一個(gè)快速取關(guān)腳本,幫助您快速清理不想關(guān)注的用戶。

圖片[1]-抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本-資源網(wǎng)站

圖文教程

圖片[2]-抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本-資源網(wǎng)站

進(jìn)入上述頁面后,按F12打開開發(fā)者工具,找到控制臺(tái),輸入下面的代碼

// 獲取第一個(gè) "取消關(guān)注" 按鈕并點(diǎn)擊
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 === "確認(rèn)") {
            confirmBtns[i].click();
            setTimeout(() => {
              cancelFollow();
            }, 1000);
            return;
          }
        }
      }
      // 點(diǎn)擊完第一個(gè)取消關(guān)注后,重新查找新的取消關(guān)注按鈕并執(zhí)行相應(yīng)操作
      setTimeout(() => {
        cancelFollow();
      }, 1000);
    }, 500);
  } else {
    console.log("全部用戶已取消關(guān)注");
  }
}

// 執(zhí)行取消關(guān)注流程
cancelFollow();

輸入后按回車即可

視頻演示

與ChatGPT的對(duì)話設(shè)置

需要有完成的提問思路,請(qǐng)看我們跟ChatGPT的對(duì)話,這個(gè)是我們對(duì)剛才完整邏輯的描述

圖片[3]-抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本-資源網(wǎng)站

然后就是ChatGPT給出的代碼及解釋了

圖片[4]-抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本-資源網(wǎng)站

給出代碼后,我們需要運(yùn)行代碼,看它是否能正常運(yùn)行。如果不能正常運(yùn)行,有錯(cuò)誤會(huì)提供錯(cuò)誤報(bào)告。如果沒有報(bào)錯(cuò),我們需要盡可能詳細(xì)地描述頁面的情況并給出反饋。
我們認(rèn)為這里沒有得到“確認(rèn)”二字,導(dǎo)致彈出窗口后跳轉(zhuǎn)到其他頁面。

圖片[5]-抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本-資源網(wǎng)站
// 獲取指定位置的 "取消關(guān)注" 按鈕并點(diǎn)擊
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 === "確認(rèn)") {
            confirmBtns[i].click();
            setTimeout(() => {
              // 判斷是否已經(jīng)取消了所有用戶的關(guān)注
              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("全部用戶已取消關(guān)注");
                // 刷新頁面并重新執(zhí)行取消關(guān)注流程
                setTimeout(() => {
                  location.reload();
                }, 1000);
              }
            }, 1000);
            return;
          }
        }
      }
      // 點(diǎn)擊完當(dāng)前取消關(guān)注后,重新查找新的取消關(guān)注按鈕并執(zhí)行相應(yīng)操作
      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("全部用戶已取消關(guān)注");
        // 刷新頁面并重新執(zhí)行取消關(guān)注流程
        setTimeout(() => {
          location.reload();
        }, 1000);
      }
    }, 1000);
  } else {
    console.log("沒有找到“取消關(guān)注”按鈕");
    // 刷新頁面并重新執(zhí)行取消關(guān)注流程
    setTimeout(() => {
      location.reload();
    }, 1000);
  }
}

// 執(zhí)行取消關(guān)注流程
cancelFollow(2);

繼續(xù)測(cè)試,發(fā)現(xiàn)基本邏輯可以實(shí)現(xiàn),但是現(xiàn)在會(huì)出現(xiàn)一個(gè)問題:
即頁面上有10個(gè)按鈕,它會(huì)依次點(diǎn)擊1、2、3、4、5、6、7、8、9、10個(gè)按鈕,無法獲得新的。
相當(dāng)于現(xiàn)在的代碼可以取消一個(gè)頁面的關(guān)注,但是我們需要的是取消每個(gè)頁面的關(guān)注。
我們可以考慮一個(gè)折中的辦法,每次點(diǎn)擊第一個(gè)或第二個(gè)標(biāo)簽代碼。

圖片[6]-抖音批量取關(guān)| 全網(wǎng)首發(fā) | 使用ChatGPT寫一個(gè)自動(dòng)化JS腳本-資源網(wǎng)站

修改一下代碼

// 獲取第一個(gè) "取消關(guān)注" 按鈕并點(diǎn)擊
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 === "確認(rèn)") {
            confirmBtns[i].click();
            setTimeout(() => {
              cancelFollow();
            }, 1000);
            return;
          }
        }
      }
      // 點(diǎn)擊完第一個(gè)取消關(guān)注后,重新查找新的取消關(guān)注按鈕并執(zhí)行相應(yīng)操作
      setTimeout(() => {
        cancelFollow();
      }, 1000);
    }, 1000);
  } else {
    console.log("全部用戶已取消關(guān)注");
  }
}

// 執(zhí)行取消關(guān)注流程
cancelFollow();

這里可以進(jìn)行延遲優(yōu)化

      // 點(diǎn)擊完第一個(gè)取消關(guān)注后,重新查找新的取消關(guān)注按鈕并執(zhí)行相應(yīng)操作
      setTimeout(() => {
        cancelFollow();
      }, 1000);
    }, 1000);
  } else {
    console.log("全部用戶已取消關(guān)注");
  }

我們可以把1000改成500,提高點(diǎn)擊確認(rèn)的速度。

      // 點(diǎn)擊完第一個(gè)取消關(guān)注后,重新查找新的取消關(guān)注按鈕并執(zhí)行相應(yīng)操作
      setTimeout(() => {
        cancelFollow();
      }, 1000);
    }, 500);
  } else {
    console.log("全部用戶已取消關(guān)注");
  }
------本頁內(nèi)容已結(jié)束,喜歡請(qǐng)分享------
溫馨提示:由于項(xiàng)目或工具都有失效性,如遇到不能做的項(xiàng)目或不能使用的工具,可以根據(jù)關(guān)鍵詞在站點(diǎn)搜索相關(guān)內(nèi)容,查看最近更新的或者在網(wǎng)頁底部給我們留言反饋。
? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊213 分享
評(píng)論 搶沙發(fā)

請(qǐng)登錄后發(fā)表評(píng)論

    暫無評(píng)論內(nèi)容