如何批量提取单条推文下的所有评论用户账号?

10次阅读
没有评论

如何快速提取推文评论区的所有账号?

在浏览推文时,如果需要统计或收集评论区的用户账号,往往会面临一个痛点:由于推特(X)的加载机制,评论区无法一次性展示所有账号,手动记录不仅低效且极易遗漏。

为了解决这个问题,可以使用一段简单的 JavaScript 脚本。它的逻辑是:在脚本运行期间,你只需持续向下滚动浏览评论区,脚本会在后台实时抓取出现的账号,并在执行完毕后自动完成去重处理,将最终名单输出在控制台中。

操作指南

该脚本无需安装插件,直接通过浏览器内置的开发者工具即可运行:

  1. 在浏览器中打开目标推文页面。
  2. 按下 F12 键(或右键点击页面选择“检查”)打开开发者界面。
  3. 切换到 Console(控制台)面板。
  4. 将以下代码粘贴进去并回车执行。
// 循环获取账号。默认时长 20 秒,修改 maxCounter 值即可。// 获取所有 class 为 test 的 div 元素
var elements = document.getElementsByClassName("css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0");

// 定义一个正则表达式来匹配带有 @的字符串
var regex = /@(w+)/g;

// 创建一个 Set 来保存匹配到的字符串
var uniqueStrings = new Set();

// 定义一个计数器和一个最大计数器值,这里是 20
var counter = 0;
var maxCounter = 20;

// 定义一个定时器,每秒执行一次
var timer = setInterval(function() {
// 检查计数器是否已经达到最大值
if (counter >= maxCounter) {
// 停止定时器
clearInterval(timer);

// 打印所有唯一的匹配到的字符串
uniqueStrings.forEach(function(str) {console.log(str);
});

// 打印所有唯一的匹配到的字符串,带有序号
var index = 1;
uniqueStrings.forEach(function(str) {console.log(index + "." + str);
index++;
});
} else {
// 遍历所有元素并查找带有 @的字符串
for (var i = 0; i < elements.length; i++) {var matches = elements[i].innerHTML.match(regex);
if (matches !== null) {for (var j = 0; j < matches.length; j++) {uniqueStrings.add(matches[j]);
}
}
}
// 递增计数器
counter++;
}
}, 1000);

注意事项

  • 动态抓取:脚本运行期间,请务必在页面中 向下滚动,以便触发页面加载更多评论,否则脚本只能获取当前可见的账号。
  • 时长自定义:默认抓取时间为 20 秒。如果评论区内容非常多,可以修改代码中的 maxCounter 数值来延长运行时间。
  • 结果查看:运行结束后,去重后的账号列表(含序号版)将直接显示在 Console 窗口中。

运行效果:

如何批量提取单条推文下的所有评论用户账号?

正文完
 0
Administrator
版权声明:本站原创文章,由 Administrator 于2023-04-10发表,共计1264字。
转载说明:除特别说明外,本站原创内容采用 Creative Commons Attribution 4.0 (CC BY 4.0) 许可协议发布,转载请注明来源并保留原文链接。 本站部分内容基于公开资料整理,并可能经 AI 技术辅助生成或优化,仅供参考,不构成任何专业建议,请读者自行判断与核实。 本站不对第三方资源的可用性、安全性或合法性承担任何责任。
评论(没有评论)
验证码