# ecommerceCrawler **Repository Path**: monster1217/ecommerce-crawler ## Basic Information - **Project Name**: ecommerceCrawler - **Description**: 这是一个电商爬虫测试 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-24 - **Last Updated**: 2025-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电商爬虫系统 一个功能强大的多站点电商数据爬取系统,支持亚马逊(日本/德国)、淘宝、京东等多个平台。 ## ✨ 核心功能 - 🌍 **多站点支持** - 亚马逊日本/德国、淘宝、京东 - 🔄 **多种执行模式** - 单次/并行/循环执行 - 📊 **完整数据采集** - 商品信息、价格、评分、评论、销量 - 💾 **数据存储** - MongoDB数据库 + JSON文件 - 🔁 **自动重试** - 失败自动重试,提高成功率 - 🕶️ **反爬虫** - Stealth模式,降低检测风险 ## 🚀 快速开始 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置数据库(可选) ```bash # 启动 MongoDB(Windows) net start MongoDB # 如不使用数据库,在 tasks.config.js 中设置 database: { enabled: false } ``` ### 3. 运行爬虫 ```bash # 单次执行 node run.js --task amazon-jp # 多关键词并行(推荐) node parallel-keywords-crawler.js --task amazon-jp # 持续循环执行 node parallel-loop-crawler.js ``` ## 📝 常用命令 ### 基础执行 ```bash # 执行单个任务 node run.js --task amazon-jp # 查看可用任务 node run.js --list ``` ### 多关键词并行(效率提升60%+) ```bash # 使用配置文件关键词 node parallel-keywords-crawler.js --task amazon-jp # 指定关键词 node parallel-keywords-crawler.js --task amazon-jp --keywords "词1,词2,词3" # 调整并发数 node parallel-keywords-crawler.js --task amazon-jp --max-concurrent 5 ``` ### 多任务循环(7x24全自动) ```bash # 启动多任务循环 node parallel-loop-crawler.js # 使用自定义配置 node parallel-loop-crawler.js --config my-config.js # 只运行指定任务 node parallel-loop-crawler.js --tasks "amazon-jp,amazon-de" ``` ### 数据查询 ```bash # 查询爬取结果 node query-database.js # 查询评论数据 node query-reviews.js --stats node query-reviews.js --asin B0CTMGGJDV # 导出Excel node export-to-excel.js --task amazon-de ``` ## ⚙️ 配置说明 ### 任务配置 (`tasks.config.js`) ```javascript module.exports = { // 执行模式 defaultMode: 'parallel', // parallel/sequential/concurrent // 任务列表 tasks: ['amazon-jp', 'amazon-de'], // 关键词配置 keywords: { 'amazon-jp': ['ベビーフード', 'おむつ'], 'amazon-de': ['Baby Foods', 'Baby Toys'] }, // 数据库配置 database: { enabled: true, mongoUri: 'mongodb://localhost:27017/ecommerce_crawler' } }; ``` ### 循环任务配置 (`loop-tasks.config.js`) ```javascript module.exports = { tasks: { 'amazon-jp': { keywords: ['ベビーフード', 'おむつ'], interval: 3600, // 循环间隔(秒) keywordDelay: 5000, // 关键词间隔(毫秒) maxRetries: 3 } } }; ``` ## 📊 执行模式对比 | 模式 | 适用场景 | 命令 | 耗时 | |------|---------|------|------| | **单次执行** | 快速测试 | `node run.js --task amazon-jp` | 基准 | | **多关键词并行** | 批量采集 | `node parallel-keywords-crawler.js` | ⬇️ 60-80% | | **多任务循环** | 持续监控 | `node parallel-loop-crawler.js` | 7x24全自动 | ## 📁 项目结构 ``` ecommerceCrawler/ ├── tasks/ # 任务配置 │ ├── amazon-jp/ # 亚马逊日本 │ ├── amazon-de/ # 亚马逊德国 │ ├── taobao/ # 淘宝 │ └── jd/ # 京东 ├── db/ # 数据库 │ ├── models/ # 数据模型 │ └── connection.js # 连接管理 ├── output/ # JSON结果 ├── exports/ # Excel导出 ├── images/ # 图片下载 └── batch-crawl-logs/ # 执行日志 ``` ## 🗄️ 数据库集合 - `crawl_results` - 爬取结果 - `reviews` - 商品评论 ## 🔧 高级功能 ### 使用 PM2 管理 ```bash # 安装 PM2 npm install -g pm2 # 启动 pm2 start parallel-loop-crawler.js --name crawler # 查看 pm2 status pm2 logs crawler # 停止 pm2 stop crawler ``` ### 定时任务 ```bash # Linux/Mac (crontab) 0 2 * * * cd /path && node parallel-keywords-crawler.js --task amazon-jp ``` ## 📖 详细文档 - [快速开始](QUICKSTART.md) - 详细的入门指南 - [命令参考](COMMANDS.md) - 所有命令说明 - [数据库配置](MONGODB_SETUP.md) - MongoDB安装配置 - [数据库使用](DATABASE.md) - 数据查询方法 ## ⚠️ 注意事项 1. **遵守网站规则** - 设置合理的爬取间隔 2. **资源控制** - 根据机器性能调整并发数 3. **数据备份** - 定期备份数据库 4. **网络稳定** - 长时间运行需要稳定网络 ## 🆘 常见问题 **Q: 数据库连接失败?** ```bash # 检查 MongoDB 是否启动 net start MongoDB # Windows sudo systemctl start mongod # Linux ``` **Q: 爬取失败?** - 检查网络连接 - 降低并发数 - 增加延迟时间 - 检查网站是否更新 **Q: 如何提高效率?** - 使用多关键词并行模式 - 增加并发数(注意资源) - 使用无头模式 `--headless` ## 📊 性能参考 | 场景 | 传统方式 | 并行方式 | 提升 | |------|---------|---------|------| | 4个关键词 | 20分钟 | 7分钟 | 65% ⬆️ | | 10个关键词 | 50分钟 | 17分钟 | 66% ⬆️ | | 20个关键词 | 100分钟 | 22分钟 | 78% ⬆️ | ## 📝 更新日志 - **v2.0** - 添加评论爬取和数据库存储 - **v1.5** - 支持多关键词并行执行 - **v1.3** - 添加多任务循环模式 - **v1.0** - 基础爬虫功能 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! --- **快速开始:** `node run.js --task amazon-jp` **效率模式:** `node parallel-keywords-crawler.js --task amazon-jp` **全自动模式:** `node parallel-loop-crawler.js`