如何实现每日自动登录B站

HAMI_7219098531 · 10 小时前

回答

Hamibot AI
1
· 10 小时前

要实现每日自动登录B站,你可以使用Hamibot编写一个自动化脚本。以下是实现思路和示例代码:

实现思路

  1. 使用 auto() 函数启动无障碍服务。
  2. 打开B站应用。
  3. 通过界面元素定位登录按钮或检查登录状态。
  4. 如果未登录,则执行登录操作。
  5. 设置定时任务,让脚本每天自动运行。

示例代码

// 文档地址 https://docs.hamibot.com/

// 启动无障碍服务
auto();

// 等待应用启动
sleep(2000);

// 打开B站应用
launchApp("哔哩哔哩");
// 如果不知道应用名称,可以使用包名
// launch("tv.danmaku.bili");

// 等待应用加载
sleep(5000);

// 检查是否已登录
function checkLoginStatus() {
    // 这里需要根据B站的实际界面元素来调整
    // 常见的检查方式:查找用户头像、用户名等登录后才显示的元素
    var userAvatar = id("avatar").findOne(3000);
    if (userAvatar) {
        log("已登录状态");
        return true;
    }
    
    // 或者查找登录按钮
    var loginButton = text("登录").findOne(3000);
    if (loginButton) {
        log("未登录状态");
        return false;
    }
    
    log("无法确定登录状态");
    return null;
}

// 执行登录操作
function performLogin() {
    log("开始执行登录操作");
    
    // 点击登录按钮(根据实际界面调整)
    var loginBtn = text("登录").findOne(5000);
    if (loginBtn) {
        loginBtn.click();
        sleep(3000);
        
        // 选择登录方式(这里以账号密码登录为例)
        // 实际使用时可能需要根据你的登录方式调整
        var accountLogin = text("账号密码登录").findOne(3000);
        if (accountLogin) {
            accountLogin.click();
            sleep(2000);
            
            // 输入用户名
            var usernameInput = className("EditText").findOne(3000);
            if (usernameInput) {
                usernameInput.setText("你的用户名");
                sleep(1000);
                
                // 输入密码
                var passwordInput = className("EditText").find()[1];
                if (passwordInput) {
                    passwordInput.setText("你的密码");
                    sleep(1000);
                    
                    // 点击登录按钮
                    var submitBtn = text("登录").findOne(3000);
                    if (submitBtn) {
                        submitBtn.click();
                        sleep(5000);
                        log("登录完成");
                        return true;
                    }
                }
            }
        }
    }
    
    log("登录失败");
    return false;
}

// 主流程
var isLoggedIn = checkLoginStatus();

if (isLoggedIn === false) {
    // 执行登录
    performLogin();
} else if (isLoggedIn === true) {
    log("今日已登录,无需重复登录");
} else {
    log("无法确定登录状态,可能界面加载异常");
}

// 登录完成后可以执行其他操作,比如签到等
// ...

log("脚本执行完成");

设置每日自动运行

  1. 在Hamibot应用中,进入"定时任务"功能
  2. 创建新的定时任务
  3. 选择你上传的B站自动登录脚本
  4. 设置执行时间为每天固定时间(如早上8点)
  5. 选择要执行的设备
  6. 保存定时任务

注意事项

  1. 元素定位:B站的界面可能会更新,需要根据实际界面调整选择器(id、text、className等)。
  2. 账号安全:脚本中硬编码账号密码存在安全风险,建议:
    • 使用Hamibot的脚本配置功能来存储敏感信息
    • 或使用其他更安全的方式管理凭证
  3. 网络稳定性:确保设备网络连接正常,避免因网络问题导致登录失败。
  4. 兼容性:不同版本的B站应用界面可能不同,需要测试适配。

优化建议

  1. 添加重试机制,当登录失败时自动重试
  2. 添加日志记录,方便排查问题
  3. 结合Hamibot的云端执行功能,实现远程触发登录

如果你需要更具体的帮助,比如针对特定B站版本的元素定位,可以提供更多细节信息。

ℹ️ 本回答由 AI 生成,内容仅供参考