您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

1 个月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # crawling-service
  2. 一个基于 Node.js 和 Playwright 的商品信息爬虫服务。
  3. ## 功能特性
  4. - 🚀 提供 RESTful API 接口
  5. - 🔍 支持商品信息爬取
  6. - 📸 支持商品截图功能
  7. - 🛡️ 内置安全防护
  8. - 📝 完整的日志记录
  9. - 🔄 模块化设计
  10. ## 技术栈
  11. - Node.js (v22.x)
  12. - Express.js - Web 框架
  13. - Playwright - 浏览器自动化
  14. - Winston - 日志管理
  15. - Jest - 单元测试
  16. - Helmet - 安全中间件
  17. - CORS - 跨域支持
  18. ## 项目结构
  19. ```
  20. src/
  21. ├── config/ # 配置文件
  22. ├── controllers/ # 控制器
  23. ├── middlewares/ # 中间件
  24. ├── routes/ # 路由
  25. ├── services/ # 业务逻辑
  26. ├── utils/ # 工具函数
  27. ├── app.js # 应用入口
  28. └── server.js # 服务器配置
  29. ```
  30. ## 安装说明
  31. 1. 确保已安装 Node.js v22.x
  32. 2. 克隆项目
  33. ```bash
  34. git clone http://dev.sohomall.jp:3000/lizhuang/crawling-service.git
  35. cd crawling-service
  36. ```
  37. 3. 安装依赖
  38. ```bash
  39. npm install
  40. ```
  41. 4. 配置环境变量
  42. ```bash
  43. cp .env.example .env
  44. # 编辑 .env 文件,配置必要的环境变量
  45. ```
  46. ## 运行服务
  47. 开发环境:
  48. ```bash
  49. npm run dev
  50. ```
  51. 生产环境:
  52. ```bash
  53. npm start
  54. ```
  55. ## API 接口
  56. ### 商品信息查询
  57. - 请求方式:GET
  58. - 接口路径:`/api/product/info`
  59. - 参数:
  60. - url: 商品URL(必填)
  61. - needScreenshot: 是否需要截图(可选,默认 false)
  62. - platform: 平台(可选,目前仅支持 amazon)
  63. ## 开发规范
  64. - 遵循 SOLID 原则
  65. - 函数职责单一
  66. - 完整的异常处理
  67. - 清晰的代码注释
  68. - 统一的代码风格
  69. ## 测试
  70. 运行测试:
  71. ```bash
  72. npm test
  73. ```
  74. ## 贡献指南
  75. 1. Fork 项目
  76. 2. 创建特性分支
  77. 3. 提交变更
  78. 4. 推送到分支
  79. 5. 创建 Pull Request
  80. ## 许可证
  81. ISC License