2025年12月18日星期四

百度贴吧任务脚本(2025年12月版)

1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/Bg6shY若失效,可用地址

1.购买服务器

阿里云:

服务器购买地址

https://t.aliyun.com/U/Bg6shY

若失效,可用地址

https://www.aliyun.com/daily-act/ecs/activity_selection?source=5176.29345612&userCode=49hts92d

腾讯云:

https://curl.qcloud.com/wJpWmSfU

若失效,可用地址

https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console

华为云

https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905

2.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

3.代码如下

import aiotieba as tbimport asyncioimport timeimport osimport sys
BDUSS = os.getenv("BDUSS")if not BDUSS:    print("未设置环境变量 BDUSS , 程序退出")    sys.exit()BDUSS_SPLIT=BDUSS.split("#")user_count=1print(f"用户数量: {len(BDUSS_SPLIT)}")
async def main(BDUSS):    async with tb.Client(BDUSS=BDUSSas client:
        user = await client.get_self_info()        print(f"用户名: {user.user_name}")        print(f"id:{user.user_id}")        print(f"uid: {user.tieba_uid}")        print(f"吧龄: {user.age} 年")        print(f"昵称: {user.nick_name_new}")        print(f"portrait: {user.portrait}")        print("\n")
        print("获取关注贴吧列表并签到...")        print("\n")        followed_forums_pages=1        followed_forums_count=0        sign_in_success_count=0        sign_in_already_count=0        sign_in_failed_count=0        while True:            followed_forums=await client.get_follow_forums(user.user_id,pn=followed_forums_pages)            for x in followed_forums.objs:                print(f"{x.fname} ({x.fid})",end=" ")
                sign_in_result=await client.sign_forum(x.fname)
                if not sign_in_result.err:                    sign_in_success_count+=1                    print(f"签到成功")                elif sign_in_result.err.args[0]==160002:                    sign_in_already_count+=1                    print(f"已签到")                else:                    sign_in_failed_count+=1                    print(f"签到失败,错误:{sign_in_result.err}")                print("")
                followed_forums_count+=1                time.sleep(5)            followed_forums_pages+=1            if not followed_forums.has_more:                break
        print(f"总关注贴吧数: {followed_forums_count} 个")        print(f"已签到: {sign_in_already_count} 个")        print(f"签到成功: {sign_in_success_count} 个")        print(f"签到失败: {sign_in_failed_count} 个")        if followed_forums_count > 0:            print(f"签到率: {(sign_in_success_count+sign_in_already_count)*100/followed_forums_count}%")        else:            print("签到率: 无(未关注任何贴吧)")
for i in BDUSS_SPLIT:    print(f"\n\n\n使用第 {user_count} 个 BDUSS 进行签到...")    print(f"获取第 {user_count} 个用户信息...")    asyncio.run(main(i))    if user_count<len(BDUSS_SPLIT) and user_count>1:        print(f"第 {user_count} 个用户签到完成,等待 60 秒...")        time.sleep(60)        print("\n\n\n")
    user_count+=1
print("所有用户签到完成")
解析

这是一个 百度贴吧批量账号一键签到脚本,基于 aiotieba 异步库实现:

  • 从环境变量读取 BDUSS(支持用 # 分隔多个账号)

  • 对每个 BDUSS:

    1. 获取当前账号信息并打印(用户名、uid、吧龄等)

    2. 分页拉取"关注的贴吧列表"

    3. 逐个贴吧执行签到

    4. 统计:总关注数 / 签到成功 / 已签到 / 失败 / 签到率

  • 多账号之间可按逻辑延时(避免太频繁)

主要方法

1) 环境变量与多账号拆分

  • BDUSS = os.getenv("BDUSS"):从环境变量拿登录凭证

  • BDUSS.split("#"):用 # 支持多账号(一个 BDUSS 代表一个贴吧账号)

  • 没有 BDUSS 就直接退出,避免后面请求全部失败。

2) async def main(BDUSS)

这是 单个账号的完整签到流程,核心工作都在这里。

(1) async with tb.Client(BDUSS=BDUSS) as client

  • 创建贴吧客户端会话,携带 BDUSS

  • async with 会在结束时自动关闭会话(释放连接)。

(2) user = await client.get_self_info()

  • 获取当前 BDUSS 对应账号的个人信息

  • 用于确认 BDUSS 是否有效,以及打印账号信息(user_name、user_id、tieba_uid、吧龄等)。

(3) 分页获取关注贴吧:client.get_follow_forums(user.user_id, pn=...)

  • followed_forums_pages:当前页码(从 1 开始)

  • 返回对象里:

    • objs:本页的贴吧列表

    • has_more:是否还有下一页(用来停止 while True)

(4) 对每个贴吧执行签到:await client.sign_forum(x.fname)

  • 逐吧签到,并根据返回结果统计:

    • not sign_in_result.err:认为签到成功

    • err.args[0] == 160002:认为"已签到"(这是贴吧常见的业务码)

    • 否则:签到失败,打印错误信息

注意:这里用 time.sleep(5) 是同步阻塞睡眠,虽然在 async 函数里能跑,但会阻塞事件循环(更推荐改成 await asyncio.sleep(5))。

(5) 输出统计信息

  • followed_forums_count:关注贴吧总数

  • sign_in_success_count / sign_in_already_count / sign_in_failed_count

  • 签到率 = (成功 + 已签到) / 总数 * 100%

3) 外层循环:对每个 BDUSS 逐个执行

  • asyncio.run(main(i)):每个账号单独跑一次事件循环完成签到

  • 账号之间有延迟逻辑(不过你这里的条件 user_count<len(...) and user_count>1 会导致第 1 个账号不会等、第 2 个开始才可能等;而且 user_count>1 可能不是你想要的)。



注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。


历史脚本txt文件获取>>
服务器搭建,人工服务咨询>>

没有评论:

发表评论

2026年的赚钱机会

好久没写这类文章了,好多人看了我小号后,还以为我转型做财经博主了,其实小号就是闲着没事的时候写着玩,将学习投资每天产生的思考顺手输出一下。 大号的话,还是主要来写赚钱有关的东西。 每年的这个时候,我都会写一篇文章,都会对明年的情况做一些简单判断,对过去一年做个复盘。 今年也不...