Skip to content

liaolj/pachong-cursor

Repository files navigation

淘宝智能商品调研工具

🚀 基于 FastAPI + Vue3 + Playwright 的全栈商品数据爬取和分析工具

📋 项目概述

本项目是一个智能的商品调研工具,能够自动爬取淘宝商品数据并生成详细的调研报告。系统采用前后端分离架构,支持异步任务处理、实时状态更新和智能数据分析。

🌟 核心功能

  • 🔍 智能搜索: 根据关键词自动搜索商品
  • 🤖 自动爬取: 使用 Playwright 自动化浏览器爬取数据
  • 📊 数据分析: 自动生成价格统计、销量分析等
  • 📑 报告生成: 生成美观的 Markdown 格式调研报告
  • 实时更新: 支持任务进度实时查看
  • 🛡️ 智能回退: 网络问题时自动使用模拟数据

🏗️ 技术架构

后端技术栈

  • FastAPI: 现代化的 Python Web 框架
  • Playwright: 自动化浏览器控制
  • SQLAlchemy: ORM 数据库操作
  • Pydantic: 数据验证和序列化
  • SQLite: 轻量级数据库存储
  • Jinja2: 报告模板渲染

前端技术栈

  • Vue 3: 现代化前端框架
  • Element Plus: 优雅的 UI 组件库
  • TypeScript: 类型安全的 JavaScript
  • Axios: HTTP 客户端
  • Vite: 快速的构建工具

🚀 快速开始

环境要求

  • Python 3.8+
  • Node.js 16+
  • npm 或 yarn

1. 克隆项目

git clone <repository-url>
cd pachong-cursor

2. 后端设置

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
venv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt

# 安装 Playwright 浏览器
playwright install chromium

# 复制配置文件
cp env.example .env

# 启动后端服务
python -m uvicorn backend.app.main:app --reload --port 8000

3. 前端设置

# 进入前端目录
cd frontend

# 安装依赖
npm install

# 复制配置文件
cp env.example .env

# 启动前端开发服务器
npm run dev

4. 访问应用

📖 使用指南

创建调研任务

  1. 打开应用: 访问 http://localhost:5173
  2. 输入关键词: 在搜索框中输入商品关键词(如"手机"、"笔记本电脑")
  3. 开始爬取: 点击"开始爬取"按钮
  4. 查看进度: 实时查看任务执行进度
  5. 下载报告: 任务完成后下载生成的调研报告

查看任务历史

  • 在"最近任务"列表中查看所有历史任务
  • 点击"查看"按钮查看任务详情
  • 支持取消正在执行的任务

API 使用

创建任务

curl -X POST http://localhost:8000/api/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{"keyword": "手机"}'

查看任务状态

curl http://localhost:8000/api/v1/tasks/{task_id}

下载报告

curl http://localhost:8000/api/v1/reports/{task_id}/download

⚙️ 配置说明

后端配置 (.env)

# 数据库配置
DATABASE_URL=sqlite:///./data.sqlite3

# 浏览器配置
BROWSER_HEADLESS=true
BROWSER_TIMEOUT=30000

# 淘宝配置
TAOBAO_LOGIN_URL=https://login.taobao.com/
TAOBAO_SEARCH_BASE_URL=https://s.taobao.com/search

# 模拟数据模式(开发/测试用)
ENABLE_MOCK_DATA=false

# 报告配置
REPORTS_DIR=reports

# 日志配置
LOG_LEVEL=INFO

前端配置 (.env)

# API服务器地址
VITE_API_BASE_URL=http://localhost:8000

# 应用配置
VITE_APP_TITLE=淘宝智能商品调研工具
VITE_APP_VERSION=1.0.0

🔧 开发模式

启用模拟数据模式

在开发或演示环境中,可以启用模拟数据模式避免实际网络爬取:

# 设置环境变量
export ENABLE_MOCK_DATA=true

# 或在 .env 文件中设置
ENABLE_MOCK_DATA=true

# 重启后端服务
python -m uvicorn backend.app.main:app --reload --port 8000

调试和测试

# 运行后端测试
cd backend
python -m pytest tests/

# 运行前端测试
cd frontend
npm run test

# 数据提取器测试
python test_extractor.py

# 爬取流程调试
python debug_crawler.py

📊 系统监控

日志查看

后端日志会输出到控制台,包含以下信息:

  • API 请求日志
  • 任务执行状态
  • 数据爬取进度
  • 错误和警告信息

数据库管理

# 查看数据库内容
python -c "
import sqlite3
conn = sqlite3.connect('data.sqlite3')
cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM products')
print(f'商品数量: {cursor.fetchone()[0]}')
conn.close()
"

报告文件

生成的报告保存在 reports/ 目录下,文件命名格式:

report_{关键词}_{时间戳}.md

🚨 常见问题

Q: 任务一直显示"运行中"状态?

A: 可能是网络问题或反爬虫机制。建议:

  1. 检查网络连接
  2. 启用模拟数据模式:ENABLE_MOCK_DATA=true
  3. 查看后端日志了解具体错误

Q: 无法访问淘宝页面?

A: 这是正常现象,淘宝有反爬虫机制。系统会自动回退到模拟数据模式。

Q: 前端无法连接后端?

A: 检查:

  1. 后端服务是否正常启动(端口8000)
  2. 前端配置中的API地址是否正确
  3. 浏览器控制台是否有CORS错误

Q: Playwright 浏览器安装失败?

A: 尝试:

# 手动安装
playwright install chromium

# 或使用系统浏览器
playwright install-deps

🔒 安全说明

  • 本工具仅用于学习和研究目的
  • 请遵守目标网站的 robots.txt 和使用条款
  • 不要进行大规模或高频率的数据爬取
  • 建议在开发环境中使用模拟数据模式

📈 性能优化

生产环境部署

# 后端生产模式
pip install gunicorn
gunicorn backend.app.main:app -w 4 -k uvicorn.workers.UvicornWorker

# 前端构建
cd frontend
npm run build

# 使用 nginx 或其他 web 服务器部署 dist/ 目录

数据库优化

对于大量数据,建议:

  1. 使用 PostgreSQL 替代 SQLite
  2. 添加数据库索引
  3. 定期清理历史数据

🤝 贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🙏 致谢

📚 文档索引

📞 联系方式

如有问题或建议,请提交 Issue 或联系项目维护者。

🔄 更新日志

v1.0.0 (2025-09-11)

  • ✅ 完整的前后端分离架构
  • ✅ 异步任务处理系统
  • ✅ 智能数据提取和回退机制
  • ✅ 现代化的 Web 界面
  • ✅ 完善的 API 文档和部署指南
  • ✅ Docker 容器化支持
  • ✅ 模拟数据模式用于开发测试

⭐ 如果这个项目对您有帮助,请给它一个 Star!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors