赞
踩
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌
毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)
毕业设计:2023-2024年最新最全计算机专业毕业设计选题汇总
技术栈:
Django框架、scrapy框架、MySQL数据库、Echarts可视化、去哪儿网
本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏。
基于数据可视化的游客行为分析系统
(1)游客行为分析数据大屏
(2)景点人数分布
(3)景点评分数据
(4)景点浏览时间分析
(5)景点数量分析
(7)景点评分分析
(8)注册登录界面
1、项目介绍
本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏。
每个模块都有详情页,可以通过点击首页各个模块的标签,进行访问。
基于数据可视化的游客行为分析系统,包含以下几类图表:
景点数量各区县分布地图
景点数量各区县分布图
景点评分分布图
景点浏览时间分布图
景点评论词云图
景点浏览人数占比分析
景点人数占比分析
景点评分数据排名
还有登录注册界面,可以自己注册账号。
这个系统基于Django框架和MySQL数据库,使用Scrapy框架爬取去哪儿网的数据,并使用Echarts进行数据可视化。
系统的主要功能包括:
数据爬取:使用Scrapy框架爬取去哪儿网的游客行为数据,包括用户浏览记录、搜索记录、酒店预订记录等。
数据存储:将爬取到的数据存储到MySQL数据库中,方便后续的数据处理和可视化。
数据分析:对存储在数据库中的数据进行分析,包括用户行为模式、热门景点、酒店评价等方面的分析。
数据可视化:使用Echarts进行数据可视化,将分析结果以图表的形式展示,方便用户直观地了解游客行为。
用户界面:使用Django框架搭建系统的用户界面,包括登录、注册、数据查询等功能,用户可以通过界面进行数据查询和分析。
通过这个系统,用户可以更好地了解游客的行为模式,分析用户的兴趣偏好,为旅游行业提供数据支持,帮助企业制定更好的营销策略和服务优化方案。
import datetime import threading from django.shortcuts import render, redirect from twisted.internet.threads import deferToThread from mainapp import models from mainapp.utils import md5_util from mainapp.utils.all_map import AllMap all_map = AllMap() data = {} index_h = "278px" index_w = "434px" data["spider_time"] = all_map.spider_time data["p1"] = all_map.get_p1("610px", "900px") data["p2"] = all_map.get_p2() data["p3"] = all_map.get_p3() data["p4"] = all_map.get_p4(index_h, index_w) data["p5"] = all_map.get_p5(index_h, index_w) data["p6"] = all_map.get_p6(index_h, index_w) data["p7"] = all_map.get_p7(index_h, "898px") data["p8"] = all_map.get_p8(index_h, index_w) page_h = "753px" page_w = "1328px" is_show = True p1 = all_map.get_p1(page_h, page_w, is_show) p4 = all_map.get_p4(page_h, page_w, is_show) p5 = all_map.get_p5(page_h, page_w, is_show) p6 = all_map.get_p6(page_h, page_w, is_show) p7 = all_map.get_p7(page_h, page_w, is_show) p8 = all_map.get_p8(page_h, page_w, is_show) map_list = {"长沙景点分布":p1, "景点评分数据": data["p2"], "景点浏览人数": data["p3"], "景点人数分布": p4, "景点评论词云": p5, "景点浏览时间": p6, "景点数量": p7, "景点评分": p8} def index(request): return render(request, "index.html", data) def page(request): result = { "is_chart": True, "spider_time": all_map.spider_time } page = request.GET.get("p") if not page: page = 0 else: page = int(page) - 1 result["title"] = list(map_list.keys())[page] result['data'] = map_list.get(result["title"]) result['page_data'] = map_list if page in [1,2]: result["is_chart"] = False return render(request, 'page/index.html', result) """ 登陆 """ def login(request): temp_txt = { "tip": "欢迎登录", "username": "用户名", "password": "密码", "remember": "记住密码", "login": "登陆", "go": "去注册", "year": datetime.datetime.now().year, "next_year": int(datetime.datetime.now().year) + 1, "error": '' } if request.method == 'GET': return render(request, "login.html", temp_txt) if request.method == 'POST': #请求登陆 concat = request.POST username = concat["username"] password = md5_util.md5(concat["password"]) user = models.Userinfo.objects.filter(username=username, password=password).first() if user: request.session.setdefault("user_info", username) return redirect("/index") else: request.method = "GET" temp_txt['error'] = "用户名或密码错误" return render(request, "login.html", temp_txt) """ 注册 """ def register(request): temp_txt = { "tip": "注册用户", "username": "用户名", "password": "密码", "login": "注册", "go": "去登陆", "year": datetime.datetime.now().year, "next_year": int(datetime.datetime.now().year) + 1, 'error':'' } if request.method == 'GET': return render(request, "register.html", temp_txt) elif request.method == 'POST': # 注册请求接口 # 获取用户名和密码 concat = request.POST username = concat["username"] password = concat["password"] repassword = concat["repassword"] if 3 > len(username) > 16: temp_txt["error"] = "用户名过长或过短!" elif repassword != password: temp_txt['error'] = "密码不一致!" elif models.Userinfo.objects.filter(username=username).first(): temp_txt['error'] = "用户名已存在!" elif 16 < len(password) or len(password) < 6: temp_txt["error"] = "密码长度小于6或大于16" if temp_txt['error']: request.method = "GET" return render(request, 'register.html', temp_txt) # 加密 password = md5_util.md5(password) result = models.Userinfo.objects.create(username=username, password=password) print(f"result:{result}") return redirect("/login")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。