# metroCrawler **Repository Path**: bwork/metro-crawler ## Basic Information - **Project Name**: metroCrawler - **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-02-28 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Metro Crawler - 华龙巷地铁舆情监控系统 自动监控华龙巷论坛中与地铁相关的帖子,使用 AI 分析负面舆情并通过企业微信推送通知。 ## 功能特性 - 定时抓取华龙巷论坛帖子(每分钟执行一次) - 智能筛选包含"地铁"关键词的内容 - AI 分析识别负面舆情 - 企业微信实时推送通知 - 跨平台支持(Windows 开发/测试,Linux 生产环境) ## 环境要求 - Node.js >= 14.x - MongoDB - Chrome/Chromium 浏览器 - 企业微信账号(用于消息推送) ## 安装步骤 ### 1. 克隆项目 ```bash git clone cd metro-crawler ``` ### 2. 安装依赖 ```bash npm install ``` ### 3. 配置环境变量 根据运行环境复制对应的配置文件: **Windows 开发环境:** ```bash copy .env.example .env.development ``` **Linux 生产环境:** ```bash cp .env.example .env.production ``` 然后编辑配置文件,填入实际的配置信息: - 数据库连接信息 - 企业微信配置 - AI API 密钥 - Chrome 浏览器路径 ### 4. 检查配置 运行配置检查脚本,确保所有配置正确: ```bash npm run check ``` 这会验证: - 配置文件是否存在 - 必需的环境变量是否设置 - Chrome 浏览器路径是否正确 - 项目依赖是否安装 ### 5. 测试数据库连接(可选) ```bash npm run test-db ``` 这会测试数据库连接并显示现有数据。**注意:数据库会在首次运行时自动创建,无需手动初始化。** ## 运行方式 ### Windows 开发/测试环境 **检查配置:** ```cmd npm run check ``` **方式一:使用 npm 脚本(推荐)** ```cmd # 启动完整应用(包含 Web 服务和定时任务) npm run dev # 仅运行爬虫定时任务(用于测试) npm run test ``` **方式二:使用启动脚本** ```cmd # 启动完整应用 start.cmd # 仅测试爬虫 test-crawler.cmd ``` ### Linux 生产环境 **检查配置:** ```bash npm run check ``` **使用启动脚本(推荐):** ```bash chmod +x start.sh ./start.sh ``` 这会在后台运行应用,日志保存在 `/data/metro-crawler/logs/` 目录。 **查看日志:** ```bash tail -f /data/metro-crawler/logs/metro-crawler-*.log ``` **手动启动:** ```bash npm run prod ``` ## 项目结构 ``` metro-crawler/ ├── bin/ │ └── www # 应用入口 ├── models/ │ └── Post.js # 帖子数据模型 ├── routes/ │ └── crawler.js # 爬虫 API 路由 ├── services/ │ └── crawler.js # 爬虫核心逻辑 ├── utils/ │ └── wecomMessenger.js # 企业微信消息推送 ├── logs/ # 日志目录 ├── app.js # Express 应用配置 ├── scheduleCrawler.js # 定时任务调度器 ├── start.sh # Linux 启动脚本 ├── start.cmd # Windows 启动脚本 ├── .env.development # 开发环境配置 ├── .env.production # 生产环境配置 └── package.json ``` ## 配置说明 ### 浏览器路径配置 **Windows:** ``` CHROME_PATH_DEV=C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe ``` **Linux:** ``` CHROME_PATH_PROD=/usr/bin/chromium-browser # 或 CHROME_PATH_PROD=/usr/bin/google-chrome ``` ### 数据库配置 ``` DB_USERNAME=your_username DB_PASSWORD=your_password DB_HOST=localhost DB_PORT=27017 DB_NAME=metroCrawler ``` ### 企业微信配置 需要在企业微信管理后台获取以下信息: - CORPID:企业 ID - CORP_SECRET:应用 Secret - TEST_AGENT_ID:应用 AgentID ## 工作流程 1. 定时任务每分钟触发一次 2. 使用 Puppeteer 抓取华龙巷论坛 API 3. 筛选包含"地铁"关键词的帖子 4. 获取帖子详细内容 5. 调用 AI API 分析是否包含负面信息 6. 如发现负面信息,通过企业微信推送通知 ## 故障排查 ### Chrome 浏览器未找到 确保配置文件中的 Chrome 路径正确: - Windows: 检查 Chrome 安装路径 - Linux: 安装 chromium-browser 或 google-chrome ### 数据库连接失败 检查: - MongoDB 服务是否运行 - 数据库地址、端口、用户名、密码是否正确 - 网络连接是否正常 ### 企业微信推送失败 检查: - 企业微信配置是否正确 - 应用是否已启用 - 用户 ID 是否正确 ## 开发调试 单独测试爬虫功能: ```bash npm run test ``` 这会运行 `scheduleCrawler.js`,每分钟执行一次爬虫任务,方便调试。 ## 注意事项 - 生产环境建议使用 PM2 或 systemd 管理进程 - 定期清理日志文件,避免占用过多磁盘空间 - 注意 API 调用频率限制 - 保护好配置文件中的敏感信息 ## License MIT