下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:1133
这个Auto.js脚本实现了微博自动化三大功能:1)通过关键词搜索采集用户UID并保存到文件;2)读取UID文件批量关注用户;3)向已关注用户自动发送私信。代码包含详细注释,各功能模块独立,可根据需要单独使用。使用时请确保已授予Auto.js无障碍权
/**
- 微博自动化工具集
- 功能:UID采集、批量关注、自动私信
- 环境:Auto.js 4.1.1+
- 需要:微博APP、无障碍权限
*/
// ========== 全局配置 ==========
const CONFIG = {
// 操作间隔(毫秒)
interval: 3000,
// 最大操作次数
maxOperation: 50,
// 私信内容
message: "你好,很高兴认识你!",
// 要采集的关键词
searchKeyword: "科技"
};
// ========== 主入口 ==========
function main() {
console.show(); // 显示控制台
log("=== 微博自动化工具启动 ===");
// 检查微博是否安装
if(!checkAppInstalled("com.sina.weibo")) {
toast("请先安装微博APP");
return;
}
// 启动微博
launchApp("微博");
sleep(5000);
// 主菜单
let choice = dialogs.select("请选择功能",
["UID采集", "批量关注", "自动私信", "退出"]);
switch(choice) {
case 0:
uidCollector();
break;
case 1:
batchFollow();
break;
case 2:
autoMessage();
break;
default:
exit();
}
}
// ========== UID采集功能 ==========
function uidCollector() {
log("=== 开始UID采集 ===");
// 进入搜索页
click(device.width - 100, 150); // 点击搜索按钮
sleep(2000);
// 输入关键词
setText(CONFIG.searchKeyword);
sleep(2000);
click("搜索");
sleep(3000);
// 切换到用户标签
click("用户");
sleep(3000);
let uidList = [];
let scrollCount = 0;
const maxScroll = 10;
while(scrollCount < maxScroll) {
// 获取当前页面所有用户元素
let users = className("android.widget.TextView")
.depth(13)
.find();
if(users.empty) {
log("未找到用户元素");
break;
}
// 提取UID
for(let i = 0; i < users.length; i++) {
let user = users[i];
let uid = extractUid(user.text());
if(uid && !uidList.includes(uid)) {
uidList.push(uid);
log("采集到UID: " + uid);
}
}
// 滚动页面
swipe(device.width/2, device.height*0.8,
device.width/2, device.height*0.2, 500);
sleep(CONFIG.interval);
scrollCount++;
}
// 保存到文件
let filePath = "/sdcard/weibo_uids.txt";
files.write(filePath, uidList.join("\n"));
log("采集完成,共采集到 " + uidList.length + " 个UID");
log("文件已保存到: " + filePath);
}
// ========== 批量关注功能 ==========
function batchFollow() {
log("=== 开始批量关注 ===");
// 读取UID文件
let filePath = "/sdcard/weibo_uids.txt";
if(!files.exists(filePath)) {
toast("请先运行UID采集功能");
return;
}
let uidList = files.read(filePath).split("\n");
if(uidList.length === 0) {
toast("UID列表为空");
return;
}
let successCount = 0;
for(let i = 0; i < Math.min(uidList.length, CONFIG.maxOperation); i++) {
let uid = uidList[i];
log("正在处理UID: " + uid);
// 进入用户主页
let url = "sinaweibo://userinfo?uid=" + uid;
app.startActivity({
action: "android.intent.action.VIEW",
data: url
});
sleep(5000);
// 查找关注按钮
let followBtn = text("关注").findOne(3000);
if(followBtn) {
followBtn.click();
successCount++;
log("关注成功: " + uid);
} else {
log("已关注或按钮未找到: " + uid);
}
// 返回
back();
sleep(CONFIG.interval);
}
log("批量关注完成,成功关注 " + successCount + " 个用户");
}
// ========== 自动私信功能 ==========
function autoMessage() {
log("=== 开始自动私信 ===");
// 读取UID文件
let filePath = "/sdcard/weibo_uids.txt";
if(!files.exists(filePath)) {
toast("请先运行UID采集功能");
return;
}
let uidList = files.read(filePath).split("\n");
if(uidList.length === 0) {
toast("UID列表为空");
return;
}
let successCount = 0;
for(let i = 0; i < Math.min(uidList.length, CONFIG.maxOperation); i++) {
let uid = uidList[i];
log("正在处理UID: " + uid);
// 进入私信页面
let url = "sinaweibo://message?uid=" + uid;
app.startActivity({
action: "android.intent.action.VIEW",
data: url
});
sleep(5000);
// 检查是否已关注
let followBtn = text("关注").findOne(2000);
if(followBtn) {
log("未关注该用户,跳过: " + uid);
back();
sleep(1000);
continue;
}
// 输入消息
setText(CONFIG.message);
sleep(1000);
// 发送
let sendBtn = desc("发送").findOne(2000);
if(sendBtn) {
sendBtn.click();
successCount++;
log("私信发送成功: " + uid);
} else {
log("发送按钮未找到: " + uid);
}
// 返回
back();
sleep(CONFIG.interval);
}
log("自动私信完成,成功发送 " + successCount + " 条消息");
}
// ========== 工具函数 ==========
function extractUid(text) {
// 从文本中提取UID
let match = /uid=(\d+)/.exec(text);
return match ? match[1] : null;
}
function checkAppInstalled(packageName) {
return !!getInstalledPackages().find(p => p === packageName);
}
// ========== 执行主程序 ==========
main();