# XHSCrawer **Repository Path**: StarsPython/xhscrawer ## Basic Information - **Project Name**: XHSCrawer - **Description**: 小红书数据采集、统计与清洗功能 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-07 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小红书爬虫数据处理工具集 (XHSCrawer) ## 项目概述 XHSCrawer是一套完整的小红书数据采集与处理工具集,包含三个主要版本,分别专注于不同的数据处理环节: - **V1**: 专注于小红书平台数据采集,支持关键词搜索和单条笔记爬取 - **V2**: 实现Excel数据的合并、清洗和基本分析功能 - **V3**: 提供全面的数据清洗、整合、分析和报告生成功能 ## 各版本功能对比 | 功能特性 | V1 | V2 | V3 | |---------|----|----|----| | 数据采集 | ✅ | ❌ | ❌ | | Excel文件合并 | ❌ | ✅ | ✅ | | 数据去重 | ❌ | ✅ | ✅ | | 数据清洗 | ❌ | 基础 | 高级 | | 博主信息提取 | ❌ | ✅ | ✅ | | 智能数据填充 | ❌ | ❌ | ✅ | | 数据匹配合并 | ❌ | ❌ | ✅ | | 统计报告生成 | ❌ | 基础 | 高级 | | 命令行参数支持 | ✅ | ❌ | ✅ | ## 目录结构 ``` XHSCrawer/ ├── V1/ # 小红书爬虫版本 │ ├── main.py # 爬虫主程序 │ ├── config.py # 爬虫配置 │ └── requirements.txt # V1依赖 ├── V2/ # 数据处理基础版本 │ ├── main.py # 处理主程序 │ ├── .config # 配置文件 │ └── requirements.txt # V2依赖 ├── V3/ # 数据处理增强版本 │ ├── main.py # 主程序 │ ├── data_processor.py # 数据处理模块 │ ├── statistics.py # 统计分析模块 │ ├── .config # 配置文件 │ └── requirements.txt # V3依赖 ├── data/ # 数据存储目录(用于V2/V3) ├── docs/ # 文档目录 └── README.md # 本说明文档 ``` ## 各版本详细说明 ### V1: 小红书关键词爬虫 #### 主要功能 - **多关键词搜索**:支持同时设置多个关键词进行搜索 - **数据完整性**:采集完整的帖子信息,包括用户信息、互动数据等 - **智能反爬**:实现随机请求间隔、User-Agent轮换等反爬机制 - **异常处理**:具备完善的错误处理和重试机制 - **数据存储**:支持CSV和JSON两种格式的数据导出 - **进度监控**:实时显示爬取进度和日志记录 - **多URL格式支持**:支持`/explore/`和`/search_result/`格式的笔记URL - **笔记详情爬取**:可直接爬取单条笔记详情页面,提取完整数据 #### 技术栈 - **Python 3.8+** - **DrissionPage**:网页自动化工具 - **pandas**:数据处理和分析 - **tqdm**:进度条显示 - **logging**:日志记录 #### 使用方法 ```bash # 进入V1目录 cd V1 # 安装依赖 pip install -e . # 或 pip install DrissionPage pandas tqdm requests # 基本使用 python main.py # 爬取单条笔记 python main.py --url "https://www.xiaohongshu.com/explore/笔记ID" ``` #### 注意事项 - 首次使用需要手动完成登录操作 - 爬取过程中请勿关闭浏览器窗口 - 建议合理设置爬取间隔,避免触发反爬机制 ### V2: 数据处理基础版本 #### 主要功能 1. **Excel文件合并**:自动合并`data`目录下的所有Excel文件(支持.xlsx、.xls、.csv格式) 2. **数据清洗与转换**: - 根据笔记ID去重 - 重新排列列顺序 - 处理空白数据 - 导出博主链接到单独的文本文件 3. **自定义字段筛选**:根据配置文件中的字段列表,从初始表中筛选出需要的数据并导出 #### 技术栈 - **Python 3.8+** - **pandas**:数据处理库 - **openpyxl**:Excel文件操作 #### 使用方法 ```bash # 进入V2目录 cd V2 # 安装依赖 pip install -r requirements.txt # 运行程序 python main.py ``` #### 输入输出 **输入**: - `data/`目录下的Excel文件(.xlsx、.xls或.csv格式) - `.config`配置文件(自定义导出字段) **输出**: - `results/初始表.xlsx`:合并和清洗后的数据 - `results/基本表.xlsx`:根据配置筛选后的精简数据 - `results/博主链接.txt`:提取的所有博主链接 - `process.log`:程序运行日志 ### V3: 数据处理增强版本 #### 主要功能 1. **统一抽象的统计功能** - 统计表格中的重复样本 - 检查各字段的空白情况 - 生成详细的Excel格式统计报告 2. **笔记数据处理** - 合并多个笔记数据文件 - 按笔记ID去重 - 自动填充关键词 - 处理IP地址空白值 - 导出博主链接 3. **博主数据处理** - 性别字段智能填充 - IP地址处理 - 移除不必要的字段 4. **数据匹配合并** - 根据博主ID合并笔记和博主信息 - 智能合并IP地址信息 5. **按配置导出** - 根据配置文件筛选字段 - 按指定顺序排列字段 #### 技术栈 - **Python 3.8+** - **pandas**:数据处理和分析 - **numpy**:数值计算 - **openpyxl**:Excel文件操作 #### 使用方法 ```bash # 进入V3目录 cd V3 # 安装依赖 uv add -r requirements.txt # 运行主程序(使用真实数据) uv run main.py # 自定义参数运行 uv run main.py --data_dir <数据目录> --results_dir <结果目录> --config_file <配置文件路径> ``` #### 输入输出 **输入**: - `data/`目录下的笔记数据文件(以"笔记"或"笔记数据"开头) - `data/`目录下的博主数据文件(以"博主"或"博主数据"开头) - `.config`配置文件(关键词列表和基本表字段) **输出**: - `results/博主链接.txt` - 从笔记数据中提取的博主链接 - `results/笔记合并表.xlsx` - 合并后的笔记数据 - `results/笔记初始表.xlsx` - 清洗后的笔记数据 - `results/博主初始表.xlsx` - 清洗后的博主数据 - `results/初始表.xlsx` - 笔记和博主数据合并后的完整表 - `results/基本表.xlsx` - 根据配置筛选后的精简表 - 各数据表的空白值统计和重复性统计报告 #### 处理流程 1. **加载数据**:读取笔记数据和博主数据文件 2. **合并笔记文件**:将多个笔记数据文件合并为一个 3. **清洗笔记数据**:去重、填充关键词、处理IP地址 4. **清洗博主数据**:处理性别字段、IP地址等 5. **匹配合并**:根据博主ID合并笔记和博主信息 6. **筛选基本表**:根据配置筛选出需要的字段 7. **统计分析**:对各数据表进行重复性和空白值分析 8. **导出结果**:生成所有输出文件 ## 环境搭建 ### 虚拟环境配置 推荐使用uv创建和管理虚拟环境: ```bash # 在根目录创建虚拟环境 cd d:\Desktop\XHSCrawer uv venv # 激活虚拟环境 (Windows) .venv\Scripts\activate ``` ### 各版本依赖安装 **V1版本**: ```bash cd V1 pip install -r requirements.txt ``` **V2版本**: ```bash cd V2 pip install -r requirements.txt ``` **V3版本**: ```bash cd V3 uv add -r requirements.txt ``` ## 最佳实践指南 ### 工作流程建议 1. **数据采集**:使用V1版本采集原始数据 2. **基础处理**:如果只需简单合并和筛选,使用V2版本 3. **高级分析**:如需详细的统计分析和复杂数据处理,使用V3版本 ### 数据准备规范 - 确保数据文件命名符合识别规则(V3要求) - 笔记数据文件以"笔记"或"笔记数据"开头 - 博主数据文件以"博主"或"博主数据"开头 - 确保数据结构一致,特别是关键字段(如笔记ID、博主ID) ### 性能优化建议 - 对于大量数据,建议先在小数据集上测试程序 - 适当增加内存分配,尤其是处理大型Excel文件时 - 使用V3版本时,可根据需要调整统计分析的范围 ## 常见问题解答 ### V1版本常见问题 **Q: 爬取过程中出现浏览器相关错误?** A: 确保已正确安装和配置浏览器,参考DrissionPage官方文档。 **Q: 爬取一段时间后被限制访问?** A: 程序已实现基本的反爬机制,但仍建议合理控制爬取频率。可以尝试调整请求间隔。 ### V2/V3版本常见问题 **Q: 程序无法识别我的数据文件?** A: 确保文件格式正确(.xlsx、.xls或.csv),并且放置在正确的数据目录中。 **Q: V3版本中博主性别字段处理失败?** A: 确保博主数据中的性别字段名为"博主性别",而非"性别"。 **Q: 如何自定义导出的字段?** A: 修改对应版本的`.config`文件,每行添加一个字段名。 **Q: 生成的Excel文件无法打开或格式错误?** A: 确保安装了最新版本的openpyxl库,使用`pip install --upgrade openpyxl`更新。 ## 版本升级说明 ### 从V1到V2的变化 - 从数据采集转向数据处理 - 新增Excel文件合并功能 - 增加数据清洗和字段筛选功能 ### 从V2到V3的变化 - 引入面向对象设计模式 - 增强数据清洗能力 - 增加博主数据处理 - 添加数据匹配合并功能 - 新增详细的统计分析报告 - 支持命令行参数配置 ## 维护与支持 ### 日志记录 所有版本都实现了详细的日志记录功能: - V1:控制台输出和日志文件 - V2:生成process.log文件 - V3:控制台输出详细信息 ### 错误处理 各版本都具备完善的错误处理机制: - 文件不存在时的友好提示 - 数据格式错误的检测和报告 - 异常情况下的程序优雅退出 ## 许可证 [根据项目要求添加许可证信息] ## 贡献指南 欢迎对本项目进行贡献!如有任何改进建议或问题反馈,请通过以下方式联系: [根据项目要求添加联系方式] --- *最后更新时间:2025-11-07*