Spaces:
Sleeping
Sleeping
File size: 1,232 Bytes
0364a21 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import asyncio
import random
import logging
import config
logger = logging.getLogger(__name__)
async def micro_delay(action_type: str = "between_requests"):
"""
提供细微的随机抖动延迟,以打破机器自动化死板均匀的请求间隔
"""
if not config.STEALTH_MODE:
return
base_min = config.STEALTH_MIN_DELAY
base_max = config.STEALTH_MAX_DELAY
# 根据 action 稍微做一点权重偏移,避免全部都随机均匀分布
if action_type == "click":
# 点击提交按钮/页面跳转,时间可以稍微短点
delay = random.uniform(base_min, base_max * 0.8)
elif action_type == "typing":
# 敲击回车等
delay = random.uniform(base_min * 0.5, base_max * 0.5)
else: # between_requests
# 网络连接/后台操作之间
delay = random.uniform(base_min, base_max)
# 进一步加一点基于正态分布的抖动限制,使它表现更接近人的生理方差
# 这里通过限制下限来防低于0
final_delay = max(0.01, random.gauss(delay, (base_max - base_min) * 0.2))
logger.debug(f"Stealth jitter delay ({action_type}): {final_delay:.3f}s")
await asyncio.sleep(final_delay)
|