搬运-DC的解决方案-随机出现的验证码解决方案【耐家军解决方案】
评论
收藏

搬运-DC的解决方案-随机出现的验证码解决方案【耐家军解决方案】

经验分享
羽易
2025-12-30 14:02·浏览量:507
羽易
影刀专家
发布于 2025-12-30 14:00更新于 2025-12-30 14:02507浏览

DC验证码

狼辛   解决方案也挺好的,就是看着不够明显,不利于学习

主要还是解决并发阻塞问题,原并发阻塞不是真正的并发,写错了一个小细节,把解决方案共享

注意:不论何种解决方案,都会出现一个问题,在阻塞时实际上界面还会变化,导致运行失败,90%加入报错,从头再来,就好了

代码

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv


import time
from datetime import datetime

from . import process7  # 判断验证码是否出现
from . import process4  # 处理验证码

def start_slider_monitor():
    """
    后台线程:持续监听是否出现验证码
    """
    def _monitor():
        while True:
            try:
                # 判断是否出现验证码
                process7.main({})

                if glv.get("判断滑块出现"):
                    print(f"[{datetime.now()}]  检测到验证码,阻塞主流程")

                    # 阻塞主流程
                    slider_event.clear()

                    # 执行验证码处理
                    process4.main({})

                    # 验证码处理完成
                    glv["判断滑块出现"] = False
                    slider_event.set()

                    print(f"[{datetime.now()}]  验证码处理完成,恢复主流程")

                time.sleep(0.5)  # 防止CPU空转

            except Exception as e:
                print("验证码监听异常:", e)
                time.sleep(1)

    t = threading.Thread(target=_monitor, daemon=True)
    t.start()

全局变量默认不出现


判断滑块是否出现流程

调用模块放流程主流程第一行即可


收藏20
全部评论1
最新
发布评论
评论