""" 配置文件 定义系统配置项 """ import sys from pathlib import Path from typing import Optional # 项目根目录 # 打包后使用 EXE 所在目录,开发模式使用源码目录 if getattr(sys, 'frozen', False): # 打包后运行:使用 EXE 文件所在目录 BASE_DIR = Path(sys.executable).parent / 'commerce' else: # 开发模式运行 BASE_DIR = Path(__file__).parent.parent # 数据目录 DATA_DIR = BASE_DIR / 'data' LOG_DIR = BASE_DIR / 'logs' # 确保目录存在(包括父目录) DATA_DIR.mkdir(parents=True, exist_ok=True) LOG_DIR.mkdir(parents=True, exist_ok=True) # Cookie配置 COOKIE_FILE = DATA_DIR / 'cookies.json' COOKIE_EXPIRE_WARNING_HOURS = 24 # 过期前24小时预警 # API配置 BASE_URL = 'https://buyin.jinritemai.com' LOGIN_URL = 'https://buyin.jinritemai.com/mpa/account/institution-role-select' LOGIN_SUCCESS_URL = 'https://buyin.jinritemai.com/dashboard/daren/account-manager' # 登录成功URL REQUEST_TIMEOUT = 30 MAX_RETRIES = 3 RETRY_DELAY = 2 # 浏览器配置 BROWSER_HEADLESS = False BROWSER_TIMEOUT = 300 # 登录超时(秒) BROWSER_VIEWPORT = {'width': 1920, 'height': 1080} BROWSER_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' # 日志配置 LOG_LEVEL = 'INFO' LOG_FORMAT = '%(asctime)s | %(levelname)-8s | %(name)s:%(funcName)s - %(message)s' LOG_FILE = LOG_DIR / 'crawler.log' # 粉丝数据抓取配置 FETCH_FANS_ENABLED = True # 是否抓取粉丝数据(默认True) FANS_FETCH_CONCURRENCY = 5 # 并发数(默认5) FANS_FETCH_INTERVAL_MIN = 0.5 # 最小请求间隔(秒) FANS_FETCH_INTERVAL_MAX = 1.0 # 最大请求间隔(秒) # 数据上报配置 REPORT_URL = "https://api.skzhijia.com/api/Streamers/ReportStreamerData?category=commerce&logId={logId}"# None # 数据上报地址,如果为None则不进行上报 REPORT_TIMEOUT = 60 # 上报请求超时时间(秒) REPORT_MAX_RETRIES = 3 # 上报失败最大重试次数 # 循环运行配置(daemon模式) DAEMON_ENABLED = False # 是否启用守护进程模式 DAEMON_INTERVAL_HOURS = 1 # 达人账号数据抓取间隔(小时,默认1小时)