# product-search-robot **Repository Path**: dian/product-search-robot ## Basic Information - **Project Name**: product-search-robot - **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-09-02 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1688商品搜索系统 一个完整的1688商品搜索解决方案,包含Python爬虫后端和Web前端界面,支持多关键字、多地区搜索,并提供详细的数据分析功能。 ## 功能特性 ### 核心功能 - 🔍 **多平台搜索**: 支持1688、淘宝、京东等主流电商平台 - 🚀 **智能登录**: 自动绕过登录弹窗,智能会话管理 - 📊 **销量排序**: 按销量从高到低自动排序 - 📍 **地区筛选**: 支持筛选广州发货的商品 - 🛡️ **反爬处理**: 内置多种反爬机制应对策略 - 📋 **结构化输出**: 支持JSON和CSV格式输出 ### 增强功能 - 🎯 **双搜索模式**: 首页搜索 + 直接URL搜索 - 🔄 **会话管理**: 自动保存和恢复登录状态 - 🎨 **美观界面**: Rich库打造的现代化命令行界面 - 🤖 **交互模式**: 支持交互式搜索配置 - 📈 **详细统计**: 实时显示搜索进度和结果统计 ## 安装依赖 ```bash # 使用uv安装依赖 uv sync # 或使用pip安装 pip install -r requirements.txt ``` ## 使用方法 ### 基础使用 ```python from crawler.spider import PlaywrightSpider # 创建爬虫实例 with PlaywrightSpider(platform="1688") as spider: # 搜索商品 results = spider.search_products( keyword="手机壳", max_pages=3, filter_guangzhou=True, sort_by_sales=True ) # 输出结果 for product in results: print(f"商品名称: {product['title']}") print(f"价格: {product['price']}") print(f"销量: {product['sales']}") print(f"发货地: {product['location']}") print("-" * 50) ``` ### 增强版使用 ```python from crawler.enhanced_spider import EnhancedSpider # 创建增强版爬虫实例 with EnhancedSpider( platform="1688", headless=True, verbose=True ) as spider: # 搜索商品(自动处理登录) results = spider.search_products( keyword="数据线", max_pages=5, filter_guangzhou=True, sort_by_sales=True ) print(f"找到 {len(results)} 个商品") ``` ### 命令行使用 #### 基础命令 ```bash # 基础搜索 python main.py --keyword "手机壳" --pages 5 --output results.json # 使用增强版爬虫 python main.py --keyword "数据线" --enhanced --show-browser ``` #### 增强版命令行工具 ```bash # 使用专门的增强版工具 python enhanced_main.py --keyword "数据线" --pages 3 # 多平台搜索 python enhanced_main.py --keyword "手机壳" --platform taobao --pages 5 # 交互式模式 python enhanced_main.py --interactive # 显示浏览器窗口(调试用) python enhanced_main.py --keyword "充电器" --show-browser --verbose ``` #### 参数说明 - `--keyword, -k`: 搜索关键词(必需) - `--platform, -pf`: 平台选择(1688/taobao/jd,默认1688) - `--pages, -p`: 爬取页数(默认3) - `--enhanced`: 使用增强版爬虫 - `--show-browser`: 显示浏览器窗口 - `--interactive, -i`: 交互式模式 - `--verbose, -v`: 显示详细日志 - `--output, -o`: 输出文件名 - `--format, -f`: 输出格式(json/csv/both) ## 项目结构 ``` product-search-robot/ ├── crawler/ │ ├── __init__.py │ ├── spider.py # 基础爬虫逻辑 │ ├── enhanced_spider.py # 增强版爬虫 │ ├── login_handler.py # 登录处理模块 │ ├── models.py # 数据模型 │ ├── utils.py # 工具函数 │ └── anti_crawler.py # 反爬机制处理 ├── config/ │ └── settings.py # 配置文件 ├── main.py # 基础命令行入口 ├── enhanced_main.py # 增强版命令行入口 ├── test_enhanced_login.py # 增强功能测试 ├── requirements.txt # 依赖列表 ├── operateLog.md # 操作日志 └── README.md # 项目说明 ``` ## 快速开始 ### 1. 安装依赖 ```bash # 推荐使用uv uv sync # 或使用pip pip install -r requirements.txt ``` ### 2. 基础测试 ```bash # 测试基础功能 python main.py --keyword "测试" --pages 1 # 测试增强版功能 python test_enhanced_login.py ``` ### 3. 开始使用 ```bash # 简单搜索 python enhanced_main.py --keyword "你的关键词" --pages 3 # 交互式搜索 python enhanced_main.py --interactive ``` ## 平台支持 | 平台 | 状态 | 功能 | |------|------|------| | 1688 | ✅ 完全支持 | 搜索、筛选、排序、登录绕过 | | 淘宝 | ✅ 基础支持 | 搜索、基础信息提取 | | 京东 | ✅ 基础支持 | 搜索、基础信息提取 | ## 功能对比 | 功能 | 基础版 | 增强版 | |------|--------|--------| | 多平台支持 | ❌ | ✅ | | 登录绕过 | ❌ | ✅ | | 会话管理 | ❌ | ✅ | | 交互模式 | ❌ | ✅ | | 美观界面 | ❌ | ✅ | | 详细日志 | ❌ | ✅ | | 双搜索模式 | ❌ | ✅ | ## 注意事项 - 请遵守各平台的robots.txt协议和使用条款 - 建议设置合理的请求间隔,避免对服务器造成压力 - 首次使用增强版建议使用 `--show-browser` 参数观察登录过程 - 如遇登录问题,可尝试手动登录后再运行程序 - 本工具仅供学习和研究使用,请勿用于商业用途 ## 故障排除 ### 常见问题 1. **登录失败** ```bash # 使用显示浏览器模式调试 python enhanced_main.py --keyword "测试" --show-browser --verbose ``` 2. **搜索无结果** ```bash # 尝试不同平台 python enhanced_main.py --keyword "测试" --platform taobao ``` 3. **依赖安装问题** ```bash # 使用uv重新安装 uv sync --reinstall ``` ## 许可证 MIT License