live-forum/server/crawler/commerce/config/settings.py
2026-03-24 11:27:37 +08:00

64 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
配置文件
定义系统配置项
"""
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小时