实训日记 | Day 20. 答辩的终稿
总述
今天是8月14日,实训的第20天。实训的最后一天。
今天我如预期一样地完成了答辩,两位老师似乎对我的项目及答辩都还很满意。
看着自己完整的项目和老师的认可,我感到非常有成就感。
我能在这取得一个小小的进步,离不开孟老师的耐心教导,同学们友爱的帮助。
由于我今天中午又加了一些新的内容,所以也在这里再对昨天的内容进行补充。
事先准备
- 另一块屏幕用来播放本文档
- 已经开启服务的项目(原项目,处于登录状态,数据仅有一页)
- ZOL手机报价网站
- 360安全浏览器
简介
- 名称:指上云霄手机信息查阅系统
- 功能:提供爬虫和数据可视化两部分功能。
- 爬虫:可以在页面上调用后台接口,爬取ZOL手机报价网站上的数据并存储到数据库中。
- 数据可视化:可以在页面上显示手机的相关数据信息。
介绍数据爬取来源
- 手机报价首页
- 手机配置参数页
- 手机评价页面
- bilibili搜索
难点:ZOL手机报价的页面很多都不一样。对于一些没有评价或未上市的手机数据不予爬取。
应用页面
应用的页面有登录注册页面、数据可视化首页、爬虫页面、数据柱状图页面、关于页面五个页面。
登录注册页面
- 在图1中点击注册按钮可切换为图2界面,图2界面点击返回按钮可切换为图1界面。
- 在注册登录界面,对填充的文本内容有长度和字符内容的限制。例如用户名和密码只能为字母和数字组成。
- 在此界面注册后,密码将以加密后的文本进行存储。
- 如果还未登录,企图访问其他网页,则会自动跳转至登录注册页面。反之,若在登录后,访问该登录注册页面,将会自动跳转至首页。
数据可视化首页
- 数据可视化首页会在顶部显示当前的数据库条目数量。
- 数据可视化首页显示的手机信息的序列,将是一个随机序列。
- 在刚载入页面时,首页只会显示8条数据。当滚轮被滑到底部时,将会再次载入至多4条数据。实现了动态加载数据的过程,直至数据库的所有数据都已呈现。
- 每次载入的数据都是从后端被渲染完毕后,以HTML的形式插入的。
- 每个标签左侧会读取数据库中的基本信息并显示,右侧会以echarts雷达图的形式显示当前的数据和平均的数据。
- 点击名字可以弹出bilibili的视频。
爬虫页面
在文本框填入要爬取数据的第几页,点击爬虫,即可爬取数据。
数据来源是ZOL手机报价。
- 如果选择的页号已经被爬取到数据库中,后端将会拒绝该爬取请求。
- 如果选择的页号不符合要求,后端也会拒绝该爬取请求。
- 清空数据库前,需要填入事先在后端设置好的密码。
数据柱状图页面
该页面将会呈现数据库中所有条目的售价以及得分状况。通过调节图像四周的工具,可以获取不同的信息。
该页面将会呈现数据库中所有条目的售价以及得分状况。通过调节图像四周的工具,可以获取不同的信息。
- 单击柱状条可以在下方显示手机信息卡片。
- 双击柱状条会自动跳转到和这个手机相关的B站视频链接。
关于页面
关于页面比较简单,仅仅只是显示了本文档的简介部分的内容。在此不再赘述。
接口
接口分成两个模块,UserInfo模块和echarts模块。
UserInfo
- index,被请求时,将会返回登录注册页面。
- user_login,仅能被POST请求,参数为username和password。用于登录。
- user_register,仅能被POST请求,参数为username和password及emailAddress。用于注册。
- user_activate,能被GET请求,参数为id。用于注册账号的激活。将会返回一个JsonResponse。
- is_login,参数为id。被请求时,会检查浏览器的session,查看是否登录。
- user_logout,参数为id。被请求时,将会删除浏览器的session。
echarts
- 空,被请求时,返回数据可视化首页。
- run_page,被请求时,返回爬虫页面。
- hot_page,被请求时,返回数据柱状图页面。
- about,被请求时,返回关于页面。
- timenow,被请求时,返回含有系统现行时间信息的JsonResponse。
- run,参数为index,仅能被POST请求。被请求后,将会启动爬虫程序。
- get_hot_json,被请求时,返回一个字典。字典内容为数据库中所有手机的名称、价格、分数数据。
- delete,仅能被POST请求。将会清空数据库数据。
- get_data,参数为index,将会从数据库中读取序号为index的手机数据并返回一个JsonResponse。
- get_random_dict,以列表的形式产生一个随机的序列。
- get_average,被请求时,将以JsonResponse返回数据库中所有数据的评分的平均值。
- init_zorua_box,参数为index,将读取数据库中的数据,并对指定的HTML文件进行渲染,然后将渲染后的HTML文件返回。
数据库结构
- User(id,username,password,is_activate)
- Phone(id,name,price,img,score)
- config(phone,soc,camera,camera_vice,ram,battery,screen_size,image)
- evaluation(phone,cost_performance,performance,endurance,design,photograph)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zorua's Blog!
评论





