# xhs_filter **Repository Path**: simon1027/xhs_filter ## Basic Information - **Project Name**: xhs_filter - **Description**: 一个用于小红书(Xiaohongshu)的 Chrome 浏览器扩展,可以自动过滤首页、搜索结果和评论中被拉黑的用户内容。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XHS 数据过滤 一个用于小红书(Xiaohongshu)的 Chrome 浏览器扩展,可以自动过滤首页、搜索结果和评论中被拉黑的用户内容。 ## ✨ 功能特性 - 🚫 **自动过滤内容**:自动过滤首页、搜索结果和评论中被拉黑用户的内容 - 👤 **右键拉黑**:在笔记卡片或评论上右键即可快速拉黑用户 - 📝 **用户管理**:支持手动添加/删除拉黑用户,记录用户ID和用户名 - 💾 **配置导入导出**:支持配置文件的导入和导出,方便备份和迁移 - 🔄 **实时生效**:拉黑后立即生效,无需刷新页面 - 🎯 **递归过滤**:评论接口支持递归过滤子评论(sub_comments) ## 📦 安装步骤 ### 安装方法 1. **下载项目** ```bash git clone https://gitee.com/simon1027/xhs_filter.git cd xhs-feed-interceptor ``` 2. **打开 Chrome 扩展管理页面** - 在 Chrome 浏览器地址栏输入:`chrome://extensions/` - 或者:菜单 → 更多工具 → 扩展程序 3. **启用开发者模式** - 在扩展管理页面右上角,打开"开发者模式"开关 4. **加载扩展** - 点击"加载已解压的扩展程序" - 选择项目文件夹(包含 `manifest.json` 的目录) - 扩展安装完成! ## 🚀 使用方法 ### 基本使用 1. **打开小红书网站** - 访问 [https://www.xiaohongshu.com](https://www.xiaohongshu.com) 2. **拉黑用户** - **方式一:右键拉黑** - 在笔记卡片上右键点击 → 选择"拉黑该用户" - 在评论上右键点击 → 选择"拉黑该用户" - **方式二:手动添加** - 点击浏览器工具栏的扩展图标 - 在"用户ID"输入框中输入要拉黑的用户ID - 可选:在"用户名"输入框中输入用户名(用于标识) - 点击"添加用户"按钮 3. **管理拉黑列表** - 点击扩展图标打开配置页面 - 查看所有已拉黑的用户列表 - 点击"删除"按钮可移除拉黑用户 - 点击"一键清空"按钮可清空所有拉黑用户 ### 配置管理 #### 导入配置 1. 点击扩展图标打开配置页面 2. 点击"导入配置"按钮 3. 选择之前导出的 JSON 配置文件 4. 配置会自动加载并保存 #### 导出配置 1. 点击扩展图标打开配置页面 2. 点击"导出配置"按钮 3. 浏览器会自动下载 `xhs-blocked-users-config.json` 文件 4. 保存该文件用于备份或迁移 ### 配置格式 导出的配置文件格式如下: ```json { "blockedUsers": [ { "userId": "5b13b60111be103590072cda", "userName": "Scarlett斯嘉丽" }, { "userId": "abc123def456", "userName": "示例用户" } ] } ``` ## 🎯 过滤规则 扩展会自动过滤以下接口的响应: 1. **首页刷新接口** (`/api/sns/web/v1/homefeed`) - 过滤 `data.items` 数组中的笔记卡片 2. **搜索接口** (`/api/sns/web/v1/search/notes`) - 过滤 `data.items` 数组中的搜索结果 3. **评论接口** (`/api/sns/web/v2/comment/page`) - 过滤 `data.comments` 数组中的评论 - 递归过滤 `sub_comments` 子评论 ## 🔧 技术说明 ### 工作原理 1. **内容脚本注入**:通过 `content.js` 在页面加载前注入 `inject.js` 2. **API 拦截**:拦截 `XMLHttpRequest` 和 `fetch` 请求 3. **数据过滤**:解析响应 JSON,根据拉黑列表过滤数据 4. **响应重写**:将过滤后的数据重新写入响应 ### 文件结构 ``` xhs-feed-interceptor/ ├── manifest.json # 扩展配置文件 ├── content.js # 内容脚本(注入器) ├── inject.js # 注入脚本(核心逻辑) ├── options.html # 配置页面 HTML ├── options.js # 配置页面逻辑 └── README.md # 说明文档 ``` ### 数据存储 - 使用 `chrome.storage.local` API 存储拉黑用户列表 - 存储键名:`__xhs_blocked_users__` - 数据格式:`Array<{userId: string, userName: string}>` ### 兼容性 - Chrome 浏览器(Manifest V3) - 仅支持小红书网站:`https://www.xiaohongshu.com/*` ## ⚠️ 注意事项 1. **用户ID获取**:用户ID可以从用户主页URL中获取,格式为 `/user/profile/{user_id}` 2. **数据迁移**:扩展会自动从旧版本的 `localStorage` 迁移数据到 `chrome.storage.local` 3. **实时更新**:拉黑用户后,已加载的内容会立即隐藏,新加载的内容会自动过滤 4. **隐私安全**:所有数据仅存储在本地浏览器,不会上传到任何服务器 ## 🐛 问题反馈 如果遇到问题或有功能建议,请: 1. 检查浏览器控制台是否有错误信息(F12 打开开发者工具) 2. 确认扩展已正确安装并启用 3. 尝试重新加载扩展或刷新页面 4. 在 GitHub Issues 中提交问题报告 ## 📄 许可证 本项目采用 MIT 许可证。 ## 🙏 致谢 感谢所有贡献者和使用者的支持! --- **注意**:本扩展仅用于个人学习和研究目的,请遵守小红书的使用条款和相关法律法规。