64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
"""
|
||
配置文件
|
||
定义系统配置项
|
||
"""
|
||
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小时)
|
||
|