# browse_addon **Repository Path**: luckythc/browse_addon ## Basic Information - **Project Name**: browse_addon - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 浏览器自动化操作扩展 一个功能强大的浏览器扩展,支持Chrome和Edge浏览器,可通过JS脚本自动化网站操作,包括打开网站、输入文本、点击按钮、提取页面内容等。 ## 功能特性 - **脚本列表展示**:在插件弹窗中以列表形式展示所有可用脚本 - **多站点支持**:可以同时在多个网站上运行不同脚本 - **自动化操作**:支持打开网站、输入文本、点击按钮、提取页面内容等DOM操作 - **新标签页跟踪**:自动跟踪新打开的标签页并注入脚本 - **执行状态监控**:实时显示脚本执行状态(运行中、暂停、完成、失败等) - **脚本中止功能**:可以随时中止正在运行的脚本 - **文件下载**:支持将提取的数据保存为文件下载到本地 - **关键词搜索**:针对Boss直聘等脚本支持自定义搜索关键词 ## 安装说明 ### 开发模式安装 1. 克隆或下载本项目到本地 2. 打开Chrome或Edge浏览器 3. 输入 `chrome://extensions/` 或 `edge://extensions/` 进入扩展管理页面 4. 开启右上角的「开发者模式」 5. 点击「加载已解压的扩展程序」 6. 选择项目根目录即可安装 ## 使用指南 1. 点击浏览器右上角的插件图标打开弹窗 2. 在脚本列表中选择要运行的脚本 3. 点击「Run」按钮执行脚本 4. 对于支持关键词的脚本(如Boss直聘搜索),会弹出提示框要求输入搜索关键词 5. 脚本会自动打开目标网站并执行预设操作 6. 可以在弹窗中查看脚本执行状态和进度 7. 点击「Abort」按钮可以随时中止正在运行的脚本 ## 支持的脚本 ### 1. Baidu Search - 网站:https://www.baidu.com/ - 功能:自动搜索指定关键词并返回结果 ### 2. Boss直聘搜索 - 网站:https://www.zhipin.com/ - 功能:搜索指定职位关键词,提取结果并保存为JSON文件 - 支持自定义搜索关键词 ## 脚本开发 ### 创建新脚本 在 `scripts` 目录下创建一个新的JavaScript文件,文件结构如下: ```javascript // scripts/your_script.js - 脚本描述 export default (function() { // 脚本元数据 const metadata = { "name": "脚本名称", "version": "1.0.0", "author": "作者", "license": "MIT", "website": "https://target-website.com/", "description": "脚本功能描述", "supportedUrls": [ "*://target-website.com/*", "*://*.target-website.com/*" ] }; // 脚本主体 async function run(api, searchKeyword = "默认关键词") { try { // 1. 等待页面加载 await api.wait(1000); // 2. 执行自动化操作 await api.type(".selector", "文本内容"); // 输入文本 await api.click(".button-selector"); // 点击按钮 await api.wait(2000); // 等待 // 3. 提取页面内容 const result = await api.extract(".content-selector", true); // 4. 下载文件 await api.downloadFile("filename.json", JSON.stringify(result)); return { success: true, message: "操作完成" }; } catch (error) { console.error("Script execution failed:", error); throw error; } } // 导出脚本元数据和run函数 return { metadata, run }; })(); ``` ### API 参考 脚本可以使用以下API方法: - `api.openUrl(url)` - 打开指定URL - `api.type(selector, text)` - 在指定元素中输入文本 - `api.click(selector)` - 点击指定元素 - `api.extract(selector, multiple)` - 提取指定元素的内容 - `api.wait(ms, max)` - 等待指定时间(ms为基础时间,max为最大时间,默认2000ms) - `api.waitForElement(selector, timeout)` - 等待指定元素出现 - `api.newTab(url)` - 打开新标签页 - `api.downloadFile(filename, content)` - 下载文件 ### 注册新脚本 创建新脚本后,需要在 `background.js` 中注册: ```javascript // 全局状态管理 import baiduSearch from './scripts/baidu_search.js'; import bossSearch from './scripts/boss_search.js'; import yourScript from './scripts/your_script.js'; let scripts = { baiduSearch, bossSearch, yourScript // 添加新脚本 }; ``` ## 项目结构 ``` ├── manifest.json # 扩展配置文件 ├── background.js # 后台脚本,管理脚本加载和执行 ├── content.js # 内容脚本,注入到网页执行DOM操作 ├── popup.html # 插件弹窗HTML ├── popup.js # 弹窗逻辑,处理用户操作 ├── scripts/ # 自动化脚本目录 │ ├── baidu_search.js # 百度搜索脚本 │ └── boss_search.js # Boss直聘搜索脚本 ├── icons/ # 插件图标 └── README.md # 项目说明文档 ``` ## 技术原理 1. **背景脚本(background.js)**:管理脚本加载、内容脚本注入、执行控制和消息传递 2. **内容脚本(content.js)**:注入到网页中执行DOM操作,与背景脚本通信 3. **弹窗脚本(popup.js)**:处理用户界面和交互,发送命令到背景脚本 4. **消息传递**:使用Chrome Extension API进行脚本间通信 5. **动态注入**:根据URL模式匹配动态注入内容脚本 ## 注意事项 1. 扩展需要一定的权限才能正常工作,包括标签页管理、脚本注入等 2. 脚本只能在其声明支持的URL上运行 3. 某些网站可能有反爬虫机制,可能会影响脚本执行 4. 扩展使用Chrome Extension Manifest V3格式 ## 已知问题 - 某些网站可能会阻止内容脚本的注入 - 长时间运行的脚本可能会被浏览器限制 - 部分动态生成的页面元素可能需要额外的等待时间 ## TODO - [ ] 支持动态脚本加载和运行 - [ ] 实现脚本市场功能,允许用户分享和下载脚本 - [ ] 增加脚本编辑器,支持在线编写和调试脚本 - [ ] 添加定时任务功能,支持自动执行脚本 - [ ] 实现脚本参数配置界面 ## 许可证 MIT License ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持基本的自动化操作 - 包含百度搜索和Boss直聘搜索脚本 - 实现脚本执行状态监控 - 添加文件下载功能 - 支持自定义搜索关键词