# crawling-service 一个基于 Node.js 和 Playwright 的商品信息爬虫服务。 ## 功能特性 - 🚀 提供 RESTful API 接口 - 🔍 支持商品信息爬取 - 📸 支持商品截图功能 - 🛡️ 内置安全防护 - 📝 完整的日志记录 - 🔄 模块化设计 ## 技术栈 - Node.js (v22.x) - Express.js - Web 框架 - Playwright - 浏览器自动化 - Winston - 日志管理 - Jest - 单元测试 - Helmet - 安全中间件 - CORS - 跨域支持 ## 项目结构 ``` src/ ├── config/ # 配置文件 ├── controllers/ # 控制器 ├── middlewares/ # 中间件 ├── routes/ # 路由 ├── services/ # 业务逻辑 ├── utils/ # 工具函数 ├── app.js # 应用入口 └── server.js # 服务器配置 ``` ## 安装说明 1. 确保已安装 Node.js v22.x 2. 克隆项目 ```bash git clone http://dev.sohomall.jp:3000/lizhuang/crawling-service.git cd crawling-service ``` 3. 安装依赖 ```bash npm install ``` 4. 配置环境变量 ```bash cp .env.example .env # 编辑 .env 文件,配置必要的环境变量 ``` ## 运行服务 开发环境: ```bash npm run dev ``` 生产环境: ```bash npm start ``` ## API 接口 ### 商品信息查询 - 请求方式:GET - 接口路径:`/api/product/info` - 参数: - url: 商品URL(必填) - needScreenshot: 是否需要截图(可选,默认 false) - platform: 平台(可选,目前仅支持 amazon) ## 开发规范 - 遵循 SOLID 原则 - 函数职责单一 - 完整的异常处理 - 清晰的代码注释 - 统一的代码风格 ## 测试 运行测试: ```bash npm test ``` ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交变更 4. 推送到分支 5. 创建 Pull Request ## 许可证 ISC License