.
├── config.py # 配置文件,存放默认配置和常量
├── session_manager.py # Session 管理模块,负责登录状态的保存和加载
├── browser_controller.py # 浏览器控制器,单个浏览器的操作
├── browser_cluster.py # 浏览器集群管理,管理多个浏览器实例
├── main.py # 主程序入口
└── browser_control.py # 旧文件(已废弃,可删除)
存放所有配置和常量:
- 默认配置(URL、ID、名称等)
- Chrome 性能优化参数
- 监听相关配置
Session 管理模块,负责:
- 保存浏览器登录状态(cookies + localStorage)
- 加载已保存的登录状态
- 管理 session 文件
单个浏览器控制器,负责:
- 启动/关闭浏览器
- 打开指定页面
- 监听 GraphQL 接口请求
- 与 SessionManager 协作管理登录状态
浏览器集群管理,负责:
- 管理多个 BrowserController 实例
- 批量启动/关闭浏览器
- 批量打开页面
- 批量监听接口
主程序入口,包含:
- 启动浏览器
- 等待用户登录
- 保存登录状态
python main.py修改 config.py 中的配置项,或直接在代码中传入参数:
from browser_cluster import BrowserCluster
cluster = BrowserCluster(
size=1,
browser_name="my_browser",
browser_id_start=1,
headless=False,
session_dir="sessions",
)- 快速启动:优化了 Chrome 启动参数,大幅提升启动速度
- 登录状态管理:自动保存和加载登录状态,无需重复登录
- 接口监听:支持监听 GraphQL 接口请求和响应
- 集群管理:支持同时管理多个浏览器实例
- 首次运行需要手动登录,登录状态会自动保存
- 再次运行会自动加载已保存的登录状态
- Session 文件保存在
sessions/目录下,格式为{id}_{name}.json