K_爬虫作业_temp
一、PSP表格
二、任务要求的实现
1. 项目设计与技术栈
技术栈
基础
- Python
- Java
- Mysql
爬虫部分
- pyppeteer
- 正则表达式
正则表达式可视化工具 here
后端部分
- tornado
- Flask
- SprintBoot
- Mybatis-plus
前端部分
测试部分
- postman
- swagger
项目设计
- Python端负责爬虫得到数据并且传给Java端进行处理并且处理得到当日热点信息
- Java端负责处理爬虫信息存入数据库,主要负责对数据库的操作
- 前端负责和后端交互得到数据并且将数据进行可视化处理
- 环节
- 爬虫主体编写
- 数据库存储爬虫数据
- 前端交互数据生成可视化图表
- 渠道 && 方式
- 各技术栈官方文档快速入门、CSDN、博客园
- 爬虫部分:python结合对应库解决
- 数据库部分:java 操作数据库处理数据
- 前端部分:vue 编写
2 .爬虫与数据处理
- 通过 pyppeteer 模拟网站进行数据爬取 对应类
getHtml
MyFunction
调用getHtml
结果进行处理- 所有数据筛选均选用正则表达式、篇幅原因具体部分请移步 Github-link 进行查看 代码有仔细注释说明
- 数据导入数据库后直接导出Excel文档 并非通过 py 文件操作
3. 数据统计接口部分的性能改进
- 消耗最大的函数位于 here 中的
getPageInfo
函数
4. 每日热点的实现思路
- 在学
5. 数据可视化界面的展示
- 首页
- 全国信息展示
- 各省份信息展示
带有数据视图
- 港澳台信息展示
三、心得体会
在完成本次作业过程的心得体会
- 好难好爽
- 在完成目标过程中认识到了自己技术栈的短缺,在短短几天内被迫根据自己的想法学了很多新东西(除了java后端操作以外基本所有都是现学的),每次想实现自己的一个想法就会发现更多新的技术栈不会,反复循环一直增加着我的准备时间。同时在使用新技术的时候由于不能熟练使用,会遇到很多小坑,60%的时间都在解决bug、30%时间在学新技术、最后的10%才花在项目的实际编写上。
- 一个规定的目标才是学习并且上手新技术的最好驱动力,解决bug的过程就是巩固基础的最好方式。
- 遇到BUG先想到的要是解决、而不是逃避
创新功能
1. 添加了截至当日疫苗接种人数的展示,可以通过比对疫苗接种人数和当前疫情情况来判断 疫苗是否起到了作用。
- 创新点:根据锻炼的能力出发,在同样的网站的另一区域找到另一个有用的信息并且复用接口得到新的有效的可利用数据。
- 实现思路:后端基本复用爬取每日信息的接口、前端编写新模块在导航栏中展示得到的新数据
2. 在爬虫的时候发现官网的疫情通报模块没有提供能准确定位对应日期疫情通报的搜索功能,使得寻找对应日期的疫情通报变得十分麻烦,所以我添加了对应日期的 卫健委LINK ,方便检查人员确认数据正确性、迅速定位具体日期的疫情通报,也使存下的信息得到二次利用,同时又增强了网站的可靠度和功能性。
- 创新点:实现了 连官网都没有的强大功能!
- 实现思路:建立数据库储存对应日期的官网link,并在前端导航栏建立入口模块显示对应日期的跳转按钮。
3.项目实现前后端分离,更方便不同界面的调试与开发,降低项目耦合性
- 创新点:前后端分离实现数据可视化
- 实现思路:后端用 flask 和 springboot 管理,前端单独用 vue 管理,端口分别为 5000、8081、8080,并添加了跨域访问配置文件。
各部分测试方法:
- python
- debug模式
- print输出查看
- 控制台信息查看
- java
- swagger ui
- log.info 日志记录
- vue
- console.log
- vue ui 控制台信息查看