毕业设计题目:|Django+Vue 基于大数据技术的宠物商品信息比价及推荐系统

一、 项目概述

本项目旨在构建一个针对宠物商品的智能比价与个性化推荐平台。系统通过分布式爬虫技术从多个电商平台(如淘宝、京东、E宠等)采集海量宠物商品数据,利用大数据技术进行清洗、存储和分析。后端使用Django提供稳健的API服务,前端使用Vue构建交互式单页面应用,最终为用户提供商品比价、价格趋势追踪、个性化推荐等功能,帮助宠物主做出最优的购物决策。

二、 系统核心功能
  1. 商品比价与搜索

    • 用户搜索宠物商品(如“皇家猫粮K36”),系统展示来自不同平台的同款或类似商品,并按价格、销量、评分等排序。

  2. 商品详情与价格历史

    • 展示商品详情、用户评价。

    • 以图表形式展示商品在不同平台上的价格历史走势,帮助用户判断最佳购买时机。

  3. 个性化推荐系统

    • 基于物品的协同过滤: “看了又看”/“买了也买”(根据商品相似度推荐)。

    • 基于用户的协同过滤: “猜你喜欢”(根据相似用户的行为推荐,需要用户登录和行为数据)。

    • 基于内容的推荐: 根据商品标签(如“猫粮”、“幼猫”、“美毛”)进行推荐。

  4. 用户中心与收藏

    • 用户注册登录。

    • 收藏商品、管理降价提醒。

  5. 大数据分析看板(管理员)

    • 展示平台商品总量、价格分布、热门品牌、销量趋势等宏观数据。

  6. 降价提醒(进阶): 用户收藏商品后,当价格低于设定阈值时,通过邮件或站内信通知。

三、 系统技术架构与模块设计

本项目采用前后端分离架构,后端提供RESTful API,前端负责展示和交互。

text

[ 数据采集层 ] -> [ 大数据处理层 ] -> [ 后端API层 (Django) ] -> [ 前端表现层 (Vue) ]
   爬虫集群         数据清洗/存储        RESTful API            Vue 2/3 + Element UI
 (Scrapy/Scrapy-Redis)  (Elasticsearch)   (Django REST Framework)   Vue Router, Vuex, Axios
                    (MySQL/HBase)        (JWT认证)                ECharts
                    (Redis)

1. 数据采集与处理层(大数据技术体现)

  • 数据采集

    • 技术选型: Scrapy 框架。为体现“大数据”,使用 Scrapy-Redis 构建分布式爬虫集群,提高抓取效率。

    • 爬取字段: 商品标题、价格、品牌、规格、销量、评论数、评分、商品链接、店铺名称、平台来源等。

  • 数据存储与处理

    • 数据仓库: 原始数据可存入 MySQL 或 HBase(真正的大数据场景)。

    • 搜索引擎: Elasticsearch。这是核心之一。将所有商品数据索引到Elasticsearch中,利用其强大的全文检索和聚合分析能力,实现快速、精准的商品搜索和筛选。

    • 缓存数据库: Redis。用于缓存热点数据、用户会话、排行榜(如热销商品)以及作为Scrapy-Redis的调度队列。

2. 后端API层 (Django + Django REST Framework)

  • 模型 (Models)

    • Product: 商品核心信息表(titlebrandcategory等)。

    • ProductPrice: 商品价格历史表(product(外键), priceplatformdate)。这是比价和价格趋势的核心

    • User / UserProfile: 用户信息表。

    • UserBehavior: 用户行为表(userproductbehavior_type(浏览/收藏/购买), timestamp)。这是推荐系统的数据基础

  • 视图 (Views - API Views)

    • ProductSearchAPIView: 处理搜索请求,后端调用Elasticsearch进行查询。

    • ProductDetailAPIView: 获取商品详情和价格历史。

    • RecommendationAPIView: 为用户生成推荐商品列表。

    • UserRegisterAPIView / UserLoginAPIView: 用户注册登录,使用JWT进行认证。

  • 序列化器 (Serializers): 将模型实例转换为JSON格式,供前端使用。

  • 业务逻辑层 (Services)

    • recommendation_service.py: 封装推荐算法逻辑。

    • search_service.py: 封装对Elasticsearch的查询逻辑。

    • price_alert_service.py: 处理降价提醒的逻辑。

3. 前端表现层 (Vue.js)

  • 脚手架: Vue CLI。

  • 状态管理: Vuex。用于管理用户登录状态、购物车(如果有点击跳转电商功能)等全局状态。

  • UI框架: Element UI 或 Ant Design Vue。提供丰富的现成组件,快速构建专业界面。

  • 路由: Vue Router。实现单页面应用内的页面跳转。

  • HTTP客户端: Axios。用于调用后端Django RESTful API。

  • 可视化: Apache ECharts。用于绘制价格历史趋势图、管理员数据看板等。

4. 推荐算法层 (集成在后端Services中)

  • 数据源: 基于 UserBehavior 表。

  • 算法选择

    • 基于物品的协同过滤 (Item-CF): 计算商品之间的相似度(如通过余弦相似度),根据用户历史喜欢的商品推荐相似商品。实现简单,效果稳定,是本项目的首选

    • 基于用户的协同过滤 (User-CF): 找到与目标用户兴趣相似的用户群体,推荐这个群体喜欢的商品。

    • 混合推荐: 结合以上多种方法,提升推荐效果。

  • 实现方式

    • 离线批处理: 使用Python(Pandas, Scikit-learn)定期(如每天)计算物品相似度矩阵,并将结果存入Redis,API直接读取使用。适合用户行为数据量大的场景。

运行结果展示:

更多推荐