|
|
坛友们大家好,我是一名学习软件工程的准大二学生。
我从八月三日开始到今天(八月六日)我终于完成了英雄联盟LPL比赛数据可视化的项目!
话不多说,先看图!
源码自取:Git-Hub:https://github.com/Java-S12138/LPLDataShow
完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识。
html+css+javascript+python+requests+selenium+mysql+pymysql+json+ajax+flask+echarts
在这个过程中,遇到了很多坑,好在全部都已经解决了。
在整个页面全部功能运行成功的那一刻,我感觉幸福极了
下面我就简单介绍一下,怎么从无到有的。
第一步:获取数据
https://lpl.qq.com/es/data/rank.shtml?iGameId=134&sGameType=7,8
这个网址是英雄联盟LPL官方给出的官方数据,想要获取其中的数据,我们可以选择手动复制粘贴,但是这些数据基本上一天更新一次;如果真是这么去做的话,我想我可能要被累死。
当然,我们有更简单的方法——爬虫
但是,这个网站是一个动态的网站,使用简单的requests去爬取数据,效果非常不理想,只能获取到固定的一些数据。
这时,我们就可以采用selenium这个第三方库,去动态的爬取我们想要的数据,只不过这个稍微麻烦一点而已。
第二步:保存数据
我们成功获取到数据后,可以使用pymysql将数据保存到数据库当中,方便后面提取使用。
其实,我最开始没有准备把数据保存到数据库。
因为,我当时觉得,保存到数据库是多此一举的步骤;后面运行页面的时候,直接传过去不就行了嘛
但是,这样就会产生一个非常严重的问题,那就是每次运行就要爬虫,太繁琐了。
所有,后面我还是选择将爬取的数据保存到数据库。
尽管,我在写代码的时候经常用列表推导式,字典推导式,爬虫和保存到数据库的全部代码也到达了300多行。害,动态网站太恶心了。
第三步:绘制网页
使用html+css+javascript+jquery+echarts就先可以先把前端的页面搭建出来,需要的数据都先手动写死,页面没有问题后就可以进入下一步了。
第四步:后端连接前端
使用flask框架连接前端页面,再通过ajax传递数据
知识覆盖面太广了,我就不一一道来了,欢迎各位坛友交流讨论。
|
评分
-
查看全部评分
|