logo
0
0
WeChat Login

智能手表爬虫系统

一个功能完整的智能手表数据爬取、分析和对比系统,支持从ZOL网站爬取产品信息、京东价格查询和小红书用户评价收集。

功能特点

  • 🔍 ZOL产品爬取: 自动爬取ZOL智能手表产品信息和详细参数
  • 💰 京东价格查询: 根据产品名称自动搜索京东价格信息
  • 📱 小红书评价: 收集小红书平台的真实用户评价和使用体验
  • 🗄️ 数据存储: 使用SQLite数据库存储,支持CSV/Excel/JSON多格式导出
  • 📊 数据分析: 提供品牌对比、价格分析等功能
  • 🎯 模块化设计: 合理的代码结构,便于维护和扩展

项目结构

smartwatch_crawler/
├── main.py                 # 主程序入口
├── config.py              # 配置文件
├── requirements.txt       # 依赖包列表
├── crawlers/              # 爬虫模块
│   ├── __init__.py
│   ├── zol_crawler.py     # ZOL网站爬虫
│   ├── jd_crawler.py      # 京东价格爬虫
│   └── xhs_crawler.py     # 小红书评价爬虫
├── models/                # 数据模型
│   ├── __init__.py
│   └── smartwatch.py      # 智能手表数据模型
├── database/              # 数据库模块
│   ├── __init__.py
│   ├── db_manager.py      # 数据库管理器
│   └── data_exporter.py   # 数据导出器
├── utils/                 # 工具模块
│   ├── __init__.py
│   ├── logger.py          # 日志工具
│   └── http_client.py     # HTTP客户端
├── exports/               # 导出文件目录
├── logs/                  # 日志文件目录
└── tests/                 # 测试文件

安装和使用

1. 环境要求

  • Python 3.7+
  • pip

2. 安装依赖

pip install -r requirements.txt

3. 基本使用

爬取ZOL产品信息

# 爬取1页产品
python main.py crawl-zol

# 爬取多页产品
python main.py crawl-zol --pages 3

查询京东价格

# 为所有产品查询京东价格(每个产品最多3个商品)
python main.py crawl-jd

# 自定义每个产品的查询数量
python main.py crawl-jd --limit 5

爬取小红书评价

# 为所有产品爬取小红书评价(每个产品最多10条)
python main.py crawl-xhs

# 自定义每个产品的评价数量
python main.py crawl-xhs --limit 20

执行完整流程

# 一键执行所有爬取任务
python main.py crawl-all

导出数据

# 导出为Excel格式(默认)
python main.py export

# 导出为CSV格式
python main.py export --format csv

# 导出为JSON格式
python main.py export --format json

# 导出对比报告
python main.py export --format comparison

# 指定输出文件名
python main.py export --format excel --filename my_data.xlsx

4. 高级使用

配置修改

编辑 config.py 文件来修改爬虫配置:

# 请求间隔(秒)
REQUEST_DELAY = 1

# 最大重试次数
MAX_RETRIES = 3

# 请求超时时间
TIMEOUT = 30

数据库操作

from database.db_manager import DatabaseManager

# 创建数据库管理器
db = DatabaseManager()

# 获取所有产品
products = db.get_all_products()

# 根据URL查找产品
product = db.get_product_by_url("https://detail.zol.com.cn/GPSwatch/index2107338.shtml")

自定义爬虫

from crawlers.zol_crawler import ZOLCrawler

# 创建ZOL爬虫
crawler = ZOLCrawler()

# 获取产品列表
products = crawler.get_product_list(page=1)

# 获取产品详情
product = crawler.get_product_details(product_url)

# 获取产品参数
parameters = crawler.get_product_parameters(param_url)

数据结构

产品信息表 (smartwatch_products)

  • id: 产品ID
  • name: 产品名称
  • brand: 品牌
  • model: 型号
  • zol_url: ZOL产品页面URL
  • param_url: 参数页面URL
  • image_url: 产品图片URL
  • price_range: 价格区间

产品参数表 (product_parameters)

  • id: 参数ID
  • product_id: 关联产品ID
  • category: 参数分类
  • param_name: 参数名称
  • param_value: 参数值

京东价格表 (jd_price_info)

  • id: 价格信息ID
  • product_id: 关联产品ID
  • jd_url: 京东商品URL
  • jd_title: 京东商品标题
  • current_price: 当前价格
  • original_price: 原价
  • shop_name: 店铺名称
  • rating: 评分
  • comment_count: 评价数量

小红书评价表 (xhs_reviews)

  • id: 评价ID
  • product_id: 关联产品ID
  • note_id: 笔记ID
  • title: 标题
  • content: 内容
  • author: 作者
  • like_count: 点赞数
  • comment_count: 评论数
  • tags: 标签(JSON格式)
  • publish_time: 发布时间

注意事项

  1. 请求频率: 程序已设置合理的请求间隔,避免对目标网站造成过大压力
  2. 反爬虫: 使用了随机User-Agent和重试机制来应对基本的反爬虫措施
  3. 数据准确性: 爬取的数据可能因网站结构变化而需要调整解析逻辑
  4. 法律合规: 请确保爬取行为符合目标网站的robots.txt和使用条款

故障排除

常见问题

  1. 网络连接错误

    • 检查网络连接
    • 确认目标网站可访问
    • 调整请求超时时间
  2. 解析错误

    • 网站结构可能已变化
    • 检查日志文件获取详细错误信息
    • 更新解析逻辑
  3. 数据库错误

    • 确认SQLite文件权限
    • 检查磁盘空间
    • 重新初始化数据库

日志查看

日志文件保存在 logs/ 目录下,按日期和模块分类:

  • main_YYYYMMDD.log: 主程序日志
  • zol_crawler_YYYYMMDD.log: ZOL爬虫日志
  • jd_crawler_YYYYMMDD.log: 京东爬虫日志
  • xhs_crawler_YYYYMMDD.log: 小红书爬虫日志

贡献

欢迎提交Issue和Pull Request来改进这个项目!

许可证

MIT License

About

也是上面的活

Language
Python44.4%
HTML38.5%
CSV12.8%
Markdown4.2%
Others0.1%