自动化抖音点赞取消脚本批量处理

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:bestwishes0203

  • 📷 封面壁纸:洛可可白wallpaper

Alt

自动化抖音点赞取消脚本批量处理

    • 脚本功能
    • 技术实现
    • 脚本代码
    • 使用方法
    • 注意事项

脚本功能

这个脚本通过定期发送请求到抖音的服务器,获取用户点赞的视频列表,并批量发送取消点赞的请求。它还提供了一个消息框,实时显示取消点赞的进度和总数。

技术实现

脚本主要使用了JavaScript的fetch API来与抖音的服务器进行交互,同时利用了localStorage来存储和获取密钥。通过Promise.all实现了并发请求,提高了取消点赞的效率。此外,使用setInterval函数每隔4秒自动执行一次取消点赞的操作。

脚本代码

// 从localStorage中获取密钥,并去除前缀'pub.'(如果存在)
let key = JSON.parse(localStorage.getItem('security-sdk/s_sdk_cert_key')).data.replace(/^pub\./, '');
let max_cursorTemp = 0; // 用于存储最大的游标值
let messageBox = undefined; // 用于存储消息框的DOM元素var count = 0; // 用于统计总共取消了多少个点赞// 异步函数,用于获取点赞列表并批量取消点赞
async function fetchAndCancelLikes(maxCursor = max_cursorTemp) {try {// 发送GET请求到抖音的接口,获取点赞列表const response = await fetch(`https://www.douyin.com/aweme/v1/web/aweme/favorite?aid=6383&count=999&max_cursor=${max_cursorTemp}`,  {"referrerPolicy": "strict-origin-when-cross-origin","body": null,"method": "GET","mode": "cors","credentials": "include"});const { aweme_list, max_cursor } = await response.json();max_cursorTemp = max_cursor; // 更新最大游标值// 如果响应中包含aweme_list,则提取出所有的aweme_idif (aweme_list != null) {const idsToCancel = aweme_list.map(({ aweme_id }) => aweme_id);let currCount = 0;// 使用Promise.all并发取消所有的点赞await Promise.all(idsToCancel.map(id => {cancelLike(id, key);currCount++;count++;})).then(()=>{// 取消点赞后,更新消息框if(messageBox!=undefined){document.body.removeChild(messageBox);}messageBox = showMessageBox(`本次执行取消${currCount}个点赞,共取消${count}个点赞,四秒后继续执行,如果不需要执行直接关闭浏览器,当前时间${new Date()}`);});}} catch (error) {// 如果请求失败,捕获错误并打印到控制台console.error('Error fetching and canceling likes:', error);}
}// 异步函数,用于取消单个点赞
async function cancelLike(id, key) {try {// 发送POST请求到抖音的接口,用于取消点赞await fetch("https://www.douyin.com/aweme/v1/web/commit/item/digg/?aid=6383",  {"headers": {"accept": "application/json, text/plain, */*","accept-language": "zh-CN,zh;q=0.9","bd-ticket-guard-ree-public-key": key,"content-type": "application/x-www-form-urlencoded; charset=UTF-8"},"referrer": "https://www.douyin.com/user/self?modal_id=7308336895358930212","referrerPolicy": "strict-origin-when-cross-origin","body": `aweme_id=${id}&item_type=0&type=0`,"method": "POST","mode": "cors","credentials": "include"});} catch (error) {// 如果取消点赞失败,捕获错误(但不做处理)}
}// 设置定时器,每隔4秒执行一次fetchAndCancelLikes函数
setInterval(fetchAndCancelLikes, 4000);// 函数,用于创建和显示一个消息框
function showMessageBox(mess) {// 创建消息框DOM元素,并设置样式和文本内容var messageBox = document.createElement('div');messageBox.id = 'autoMessageBox';messageBox.style.position = 'fixed';messageBox.style.top = '50%';messageBox.style.left = '50%';messageBox.style.transform = 'translate(-50%, -50%)';messageBox.style.padding = '20px';messageBox.style.backgroundColor = '#3498db';messageBox.style.color = 'white';messageBox.style.borderRadius = '5px';messageBox.style.zIndex = '1000';messageBox.style.display = 'block';messageBox.textContent = mess;document.body.appendChild(messageBox);return messageBox;
}

使用方法

要使用这个脚本,只需将其添加到你的浏览器控制台中即可。脚本会自动开始工作,并在页面上显示一个消息框,告诉你已经取消的点赞数量和进度。如果不再需要执行,只需关闭浏览器或移除脚本即可。

注意事项

虽然这个脚本可以自动化取消点赞的操作,但请注意,频繁的请求可能会对抖音服务器造成不必要的负担。因此,在使用时请合理安排时间间隔,避免过度请求。

此外,需要强调的是,这个脚本仅供学习和研究使用,不得用于任何商业或非法目的。在使用过程中,请遵守抖音的使用条款和相关法律法规。


免责声明: 本脚本仅供学习和研究目的,作者不承担因使用此脚本而产生的任何责任。请确保你的行为符合相关法律法规和平台政策。

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458826.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多个立方体盒子组成

效果: 知识了解: 在同一水平上,盒子经纬度计算:经度有误差,纬度没有误差 纬度计算:lat50/111320 约等于0.000449 经度计算:lon50/111320*cos(纬度) 约等于0.000519 一个立方体: // 添…

CentOS进入单用户模式进行密码重置

一、单用户模式介绍 单用户模式是一种特殊的启动模式,主要用于系统维护和故障排除。在单用户模式下,系统以最小化的状态启动,只有最基本的系统服务会被加载,通常只有root用户可以登录。这种模式提供了对系统的完全控制&#xff0…

模型训练识别手写数字(一)

一、模型训练数据集 1. 导入所需库 import numpy as np from sklearn.datasets import fetch_openmlnumpy 是用于数值计算的库。 fetch_openml 是用于从 OpenML 下载数据集的函数。 2. 获取 MNIST 数据集 X, y fetch_openml(mnist_784, version1, return_X_yTrue)fetch_ope…

Spring Boot与Flyway实现自动化数据库版本控制

一、为什么使用Flyway 最简单的一个项目是一个软件连接到一个数据库,但是大多数项目中我们不仅要处理我们开发环境的副本,还需要处理其他很多副本。例如:开发环境、测试环境、生产环境。想到数据库管理,我们立刻就能想到一系列问…

Ovis原理解读: 多模态大语言模型的结构嵌入对齐

论文:https://arxiv.org/pdf/2405.20797 github:https://github.com/AIDC-AI/Ovis 在多模态大语言模型 (MLLM) 中,不同的嵌入策略有显著的区别。以下是使用基于连接器的方法与 Ovis 方法的比较: 基于连接器的方法-优缺点(connector-based …

斜杠往哪斜、路径绝对还是相对,终端目录切换不再迷茫

目录 路径表示绝对路径相对路径两者区别 路径中斜杠的用法正反斜杠对比表一个常见的问题 终端切换目录常用cd指令同一盘符内跨盘符 路径表示 在计算机文件系统中,路径是用来指定文件或目录位置的一种方式。路径可以是绝对路径或相对路径: 绝对路径 绝…

cmake 编译 vtk

1. 下载 VTK 源码 vtk 源码,点击:官网下载 在官网选择合适的版本下载,这里下载的是 vtk 8.2.0 版本 2. 下载 CMake CMake 工具,点击:镜像下载 下载版本比较新的 CMake 版本,这里使用的是 CMake 3.29.2 版…

在不支持AVX的linux上使用PaddleOCR

背景 公司的虚拟机CPU居然不支持avx, 默认的paddlepaddle的cpu版本又需要有支持avx才行,还想用PaddleOCR有啥办法呢? 是否支持avx lscpu | grep avx 支持avx的话,会显示相关信息 如果不支持的话,python运行时导入paddle会报错 怎么办呢 方案一 找公司it,看看虚拟机为什么…

C++基础:constexpr,类型转换和选择语句

constexpr 提到constexpr&#xff0c;我们会发现它和const类比 常和const类比constexpr符号常量必须给定一个在编译时已知的值&#xff0c; 若某个变量初始化时的值在编译时未知&#xff0c;但初始化后绝不变。 #include<iostream> #include<vector> #include&l…

【机器学习基础】激活函数

激活函数 1. Sigmoid函数2. Tanh&#xff08;双曲正切&#xff09;函数3. ReLU函数4. Leaky ReLU函数 1. Sigmoid函数 观察导数图像在我们深度学习里面&#xff0c;导数是为了求参数W和B&#xff0c;W和B是在我们模型model确定之后&#xff0c;找出一组最优的W和B&#xff0c;使…

Go使用exec.Command() 执行脚本时出现:file or directory not found

使用 Go 提供的 exec.Command() 执行脚本时出现了未找到脚本的 bug&#xff0c;三个排查思路 &#xff1a; exec.Command(execName, args…) 脚本名字不允许相对路径 exec.Command(execName, args…) execName 只能有脚本名&#xff0c;不允许出现参数 如果你是使用 Windows …

Python爬虫:商品详情的“八卦记者”

亲爱的代码侦探们&#xff0c;今天咱们不聊那些让人头秃的bug&#xff0c;也不谈那些让人眼花的架构图。咱们来聊聊那些在代码世界里挖掘商品秘密的“八卦记者”——Python爬虫。 Python爬虫&#xff1a;商品详情的“八卦记者” 想象一下&#xff0c;你在代码的世界里&#xf…

[笔记] ffmpeg docker编译环境搭建

文章目录 环境参考dockerfile 文件步骤常见问题docker 构建镜像出现 INTERNAL_ERROR 失败? 总结 环境 docker 环境 系统centos 7.9 (无所谓了 你用docker编译就无所谓系统了) ffmpeg3.3 参考 https://blog.csdn.net/jiedichina/article/details/71438112 dockerfile 文件 …

《等保测评新视角:安全与发展的双赢之道》

在数字化转型的浪潮中&#xff0c;企业面临的不仅是技术革新的挑战&#xff0c;更有信息安全的严峻考验。等保测评&#xff0c;作为国家网络安全等级保护的一项重要措施&#xff0c;不仅为企业的安全护航&#xff0c;更成为推动企业高质量发展的新引擎。本文将从全新的视角&…

如何将markdown文件转换为pdf

最近笔者在用vscode写markdown&#xff0c;但是提交时往往需要交pdf。所以就涉及到如何将markdown转化为pdf格式。 首先&#xff0c;需要在vscode上安装插件 markdown Preview Enhanced 之后在vscode的右上角即可看到下述图标&#xff0c;点击&#xff0c;vscode右半面就会显示…

【论文阅读】PGAN

1. WHY 问题 图像超分辨率一直是一个热门研究课题&#xff0c;具有重要的应用价值。基于生成对抗网络GAN的单幅图像超分辨率方法显示重建图像与人类视觉特征更一致。因此&#xff0c;基于 GAN 的网络优化已成为图像超分辨率的主流。然而&#xff0c;一些最新研究表明&#xf…

【JIT/极态云】技术文档--函数设计

一、简介 函数是计算机编程中非常重要的概念。它是一段代码&#xff0c;可以在程序中多次调用&#xff0c;用于完成特定的任务。 函数通常接受输入参数&#xff0c;执行特定的操作&#xff0c;并返回一个结果。这个结果可以被程序中的其他代码使用。 二、新建函数 在函数列表…

Springboot整合spring-boot-starter-data-elasticsearch

前言 <font style"color:rgb(36, 41, 47);">spring-boot-starter-data-elasticsearch</font> 是 Spring Boot 提供的一个起始依赖&#xff0c;旨在简化与 Elasticsearch 交互的开发过程。它集成了 Spring Data Elasticsearch&#xff0c;提供了一套完整…

mysql-Innodb锁相关内容

1、InnoDB存储引擎包含的锁类型 共享锁&#xff08;S锁&#xff09;和排他锁&#xff08;X锁&#xff09;意向锁记录锁间隙锁Next-key锁插入意向锁Auto-INC 锁空间索引的谓词锁 2、共享锁&#xff08;S锁&#xff09;和排他锁&#xff08;X锁&#xff09;-- 锁定数据行 共享…

使用Git进行团队协作开发

使用Git进行团队协作开发 Git简介 安装Git 在Windows上安装Git 在macOS上安装Git 在Linux上安装Git 设置Git用户信息 创建Git仓库 基本Git命令 添加文件 提交更改 查看状态 克隆仓库 推送更改 获取更改 分支管理 创建分支 切换分支 合并分支 删除分支 解决合并冲突 检查冲突…