# PyScreenBrain **Repository Path**: elfbobo_admin_admin/PyScreenBrain ## Basic Information - **Project Name**: PyScreenBrain - **Description**: PyScreenBrain:专注于屏幕内容智能分析的开源项目,提供高效的图像处理和识别算法,广泛应用于监控、辅助技术和广告分析等领域。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-05 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PyScreenBrain 项目文档 ## 项目概述 PyScreenBrain 是一个基于 Flask 和 Playwright 开发的自动化操作项目,支持通过自然语言指令控制浏览器执行各种操作,可用于网页自动化测试、数据采集等场景。 ## 项目功能 - **自然语言处理**:将自然语言指令转换为可执行的原子操作。 - **浏览器自动化**:支持连接现有浏览器或创建新浏览器实例,执行点击、输入、选择下拉框等操作。 - **错误处理**:执行出错时自动截图记录,方便调试。 - **日志记录**:详细记录操作过程和错误信息。 - **iframe 支持**:可递归查找嵌套 iframe 中的元素。 ## 项目结构 ```plaintext ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.en.md ├── README.md ├── app/ │ ├── __init__.py │ ├── display/ │ ├── execute/ │ ├── parser/ │ ├── record_and_execute/ │ ├── server.py │ └── utils/ ├── config/ │ ├── __init__.py │ └── config.py ├── demo2.py ├── docker_run.bat ├── logger.py ├── network_config.bat ├── requirements.txt ├── run_chrome.bat └── start_server.py ``` ## 环境准备 ### 安装依赖 ```bash pip install -r requirements.txt ``` 依赖列表: - numpy - pandas - playwright - flask - tenacity - requests ### 配置文件 在 `config/config.py` 中配置以下环境变量: - `HTTP_HOST`:服务器地址,默认 `0.0.0.0` - `HTTP_PORT`:服务器端口,默认 `5228` - `CHROMIUN_HOST`:Chrome 调试地址,默认 `http://127.0.0.1` - `CHROMIUN_PORT`:Chrome 调试端口,默认 `9222` - `MODEL_NAME`:模型名称,默认 `deepseek_v3_671b` - `VL_MODEL_NAME`:视觉语言模型名称,默认 `Qwen2.5-VL-7B-Instruct` - `API_KEY`:API 密钥,默认 `aaa59d92-56bf-4bf1-bdec-417f5ff95574` ## 运行项目 ### 启动服务器 ```bash python start_server.py ``` 服务器默认运行在 `http://0.0.0.0:8090`。 ### 测试接口 访问 `/task_start` 接口,传入操作步骤: ```json { "steps": [ "1、打开网址:https://www.chinaunicom.com.cn/", "2、点击网上营业厅", "3、点击查询", "4、点击号码归属地查询", "5、在请输入您手机号码处输入18500288523", "6、点击查询(第二个)" ] } ``` ## 示例代码 ### 连接现有浏览器并操作 ```python demo2.py 示例展示了如何连接现有浏览器,高亮显示 select 元素并选择指定选项。 ``` ### 执行自动化操作 ```python from app.execute.action_executor import ActionExecutor # 使用已打开的浏览器 executor = ActionExecutor(use_existing_browser=True) # 执行操作 oct_keyboard_input = { 'action': 'keyboard_text_input', 'value': [ {'name': 'content', 'type': 'int', 'value': 18500288523}, {'name': 'gsut_filter', 'type': 'String', 'value': '输入框(手机号码)'} ], 'desc': '通过OCR定位手机号输入框并输入' } executor.execute(ocr_keyboard_input) ```