1、项目介绍
技术栈:
Python语言、Django框架 、MySQL数据库、Vue框架、Scrapy爬虫、Echarts可视化、懂车帝网数据
这款汽车信息网站是基于多项技术和框架设计的全面的汽车信息展示及查询系统。其中,采用了Python Django框架和Scrapy爬虫技术实现数据的抓取和处理,结合MySQL数据库进行数据存储和管理,利用Vue3、Element-Plus、ECharts以及Pinia等前端技术实现了丰富的数据可视化展示和用户交互功能。
2、项目界面
(1)汽车数据、条件筛选汽车
3、项目说明
这款汽车信息网站是基于多项技术和框架设计的全面的汽车信息展示及查询系统。其中,采用了Python Django框架和Scrapy爬虫技术实现数据的抓取和处理,结合MySQL数据库进行数据存储和管理,利用Vue3、Element-Plus、ECharts以及Pinia等前端技术实现了丰富的数据可视化展示和用户交互功能。
该系统主要包含以下几个模块:
1.Scrapy爬虫:使用Scrapy框架抓取了“懂车帝”网站的汽车及销量数据,以及“车质网”的汽车投诉数据,并将这些数据存储进MySQL数据库中,为后续的展示和查询提供了数据基础。
- 条件选车模块:通过用户输入关键词、选择品牌、价格、燃料类型、座位、车型等条件,实现对车系的筛选,并提供了按总分、价格、舒适性、外观、配置、控制、动力、空间、内饰等维度对筛选结果的排序,并支持自动翻页功能。
- 销量榜单模块:根据近一年、近半年以及每个月的车系销量数据进行统计,并展示排名,为用户提供参考。
- 差评榜单模块:根据近一年、近半年以及每个月的车系问题投诉数据进行统计,并展示排名,同时可以筛选质量问题、服务问题、其他问题,为用户提供更加精准的信息。
- 可视化分析模块:包括车系降价排行榜柱状图可视化(官方价减去经销商价格得到降差价)、汽车品牌数量TOP分布图(分析前30个品牌的车系数量的分布)、价格范围数量分布图(对分布在0-10万 10-15万 15-20万 20-25万 25-30万 30-40万 50万以上价格范围的车系数量进行分析),为用户提供更加直观的数据呈现。
- 车系详情页面:介绍了品牌、车系名、经销商报价、厂商报价、近一年销量排名、投诉量排名等基本信息,并展示了评分雷达图分析面板,分析车系的舒适性、外观、配置、控制、动力、空间、内饰六个维度,同时展示汽车数据面板和外观图片,以及该车型的所有投诉问题标签。使用ECharts展示了每个月的质量问题关键词、三种问题的每月投诉量走势图、每月车系销量走势图、每月销量排名走势图。
- 后台管理模块:可以对所有数据进行增删改查的管理,方便管理员对数据进行维护和管理。
- 用户登陆注册:用户可以通过注册登陆功能,实现个人信息的管理和保存。
综上所述,该汽车信息网站具有多项功能,不仅提供了全面的汽车信息查询和展示功能,同时也通过数据可视化的方式为用户提供了更加丰富的数据分析和决策支持,是一款集数据处理、UI设计、前端交互、后台管理等于一体的全面性汽车信息系统。
这个项目使用了很多技术组合,下面是各个部分所用到的主要技术:
- Scrapy 爬虫框架:用于抓取懂车帝和车质网的汽车数据和投诉数据。
- MySQL 数据库:存储抓取到的数据。
- Django Web 框架:用于构建整个 Web 应用程序,同时使用 Django SimpleUI 作为后台管理系统。
- Vue.js 前端框架:用于构建所有的前端视图以及实现单页应用程序。
- Element Plus UI 组件库:在 Vue.js 中使用 Element Plus UI 组件库实现各种表单元素、按钮、对话框、消息框、布局等等。
- ECharts 图表库:使用 ECharts 可视化组件库实现柱状图、雷达图、关系图、词云、时间轴等数据可视化功能。
- Vue Router:用于实现前端路由,支持 URL 路径映射和状态管理等。
- Pinia:使用 Pinia 实现 Vuex 类似的状态管理模式,方便组织和管理 Vue.js 应用程序中的复杂状态逻辑。
- Python 后端语言:使用 Python 编写后端代码,完成数据处理、Web 接口设计等相关工作。
各模块功能实现:
- scrapy爬虫抓取数据
(1)懂车帝网站的汽车及销量数据:
- 创建基于Scrapy框架的新项目;
- 根据懂车帝网站的目录结构和页面布局编写对应的Spider程序,提取汽车及销量信息;
- 将提取到的数据保存到MySQL数据库中。
(2)车质网的汽车投诉数据: - 根据车质网的目录结构和页面布局编写对应的Spider程序,提取汽车问题投诉信息;
- 将提取到的数据保存到MySQL数据库中。
- 条件选车模块
(1)后端实现
- 根据Vue.js框架开发前端页面,设计筛选条件和排序方式,对筛选条件进行处理后,向Django API发送请求获取车系数据;
- 设计Django API,根据前端发来的请求参数从MySQL数据库中查询车系数据,并按照排序方式进行排序并返回给前端。
(2)前端实现 - 使用Element Plus UI以及ECharts可视化组件库渲染页面上的各种表单元素、按钮和图表;
- 使用Vue Router进行路由管理,将不同的功能模块划分为不同的页面;
- 实现分页功能,每次翻页时请求新的数据。
- 销量榜单模块
(1)后端实现
- 设计Django API,根据时间范围(近一年、近半年、每个月)获取车系销量数据并进行统计;
- 根据前端发来的请求参数返回相应的车系销量排名。
(2)前端实现 - 使用Element Plus UI等组件对页面进行美化和交互设计。
- 差评榜单模块
(1)后端实现
- 设计Django API,根据时间范围和问题类型对投诉数据进行统计,并返回给前端。
(2)前端实现 - 使用Element Plus UI等组件对页面进行美化和交互设计。
- 可视化分析模块
(1)后端实现
- 设计Django API,统计降价排行榜、汽车品牌数量TOP分布和价格范围数量分布等指标;
- 调用ECharts库实现可视化展示,使用Vue.js进行页面设计,使用Element Plus UI组件库对页面进行美化。
(2)前端实现 - 使用ECharts图表库生成柱状图、词云和时间轴等展示效果;
- 使用Element Plus UI进行页面美化和交互设计。
- 车系详情页面
(1)后端实现
- 设计Django API,根据车系ID获取相应的汽车数据并返回给前端。
(2)前端实现 - 使用Vue.js框架开发前端页面,调用Django API获取后端数据;
- 使用Element Plus UI进行页面美化和交互设计;
- 在雷达图、词云和时间轴等展示中,借助ECharts图表库实现可视化效果。
-
可在后台增删改查管理所有数据
使用Django SimpleUI实现管理后台,并且配置相应的权限控制,管理员可以登录后台,对汽车数据和投诉数据进行增删改查和其他操作。 -
用户登陆注册
(1)后端实现
- 使用Django框架自带的用户认证系统,实现用户登录和注册功能。
- 根据前端发来的请求验证用户信息。
(2)前端实现 - 借助Element Plus UI实现表单和对话框等交互组件,提高系统的易用性。