模拟自动滚动并展开所有评论列表以及回复内容(如:抖音、b站等平台)

本文主要是介绍模拟自动滚动并展开所有评论列表以及回复内容(如:抖音、b站等平台),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于各大视频平台的回复内容排序不都是按照时间顺序,而且想看最新的评论回复讨论内容还需逐个点击展开,真的很蛋疼,尤其是热评很多的情况,还需要多次点击展开,太麻烦!

于是写了一个自动化展开所有评论回复内容的脚本:

//共计多少条实际评论----------------------------------------
let commentTotal = () => parseInt(/\((.*?)\)/g.exec(document.querySelector(`.comment-header-with-search+div`).innerText)[1] || 0);//共计多少条已经加载的评论----------------------------------------
let commentLoadedTotal = () => document.querySelectorAll(`.comment-mainContent [data-e2e="comment-item"]`).length;//打印有颜色的文字
let consoleLog = (str, { color = '#409EFF' } = {}) => console.log(`%c${str}`, `box-sizing: border-box;padding: 5px 10px;border-radius: 4px;background-color: ${color};color: white;font-size: 14px;margin: 10px 0;`);
//滚动往下(递归加载更多评论数量)----------------------------------------
let old_commentLoadedTotal = 0;
let index = 1;
let recursion_scroll = (index = 1) => {document.querySelector(`.comment-mainContent`).scrollTo(0, 99999999);//触发滚动加载更多评论consoleLog(`滚动第${index}次`);// 延时判断是否加载完毕所有评论内容setTimeout(() => {let now_commentLoadedTotal = commentLoadedTotal();if (old_commentLoadedTotal == now_commentLoadedTotal) {console.clear(); consoleLog(`已经加载所有评论共计${now_commentLoadedTotal}条,等待继续加载回复内容…`, { color: '#F56C6C' });index = 1, loadExpandComment(index);//3、模拟展开所有回复} else {old_commentLoadedTotal = now_commentLoadedTotal;recursion_scroll(++index);}}, 1000);
}//展开所有评论的回复内容----------------------------------------
let loadExpandComment = (index = 1) => {[...document.querySelectorAll(`.comment-mainContent button`)].filter(v => v.innerText.includes(`展开`)).forEach(v => v.querySelector(`span`).click());//点击展开所有回复consoleLog(`点击[展开]按钮第${index}次`);// 延时判断是否加载完毕所有评论回复setTimeout(() => {let hasExpandBtn = [...document.querySelectorAll(`.comment-mainContent button`)].map(v => v.innerText).join('').includes(`展开`);hasExpandBtn ? loadExpandComment(++index) : consoleLog(`已经加载所有评论以及回复内容,共计${commentTotal()}条,请查看吧!😁`, { color: '#67C23A' });}, 1000);
}document.querySelector(`[data-e2e="feed-comment-icon"]`).click();//1、模拟点击展开评论列表
setTimeout(() => {console.clear(); recursion_scroll();//2、模拟滚动到评论底部,加载更多内容
}, 2000);

打开抖音或其平台的PC端执行以上脚本即可,注意不同平台估计部分classname需要自己去调整下。实现效果如下:

这篇关于模拟自动滚动并展开所有评论列表以及回复内容(如:抖音、b站等平台)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068224

相关文章

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总