赞
踩
这里主要介绍通过python抓取网站数据并图形化显示
先来看下最终效果
首页
趋势图
地图显示
先抓取链接,存入MYSQL数据库,而后读取数据库中的链接,依次抓取网页的数据信息,最后在Django的基础上用highchart和highmap显示出来。因为新冠疫情爆发,大家对疫情数字比较关心,各平台也有相关的数据图表,咱也做一个试一试,就当是学习了。
1.安装了PYTHON3.8
2.安装了MYSQL
3.安装了Django及相关包
4.使用pycharm
5.安装chrome浏览器(利用其抓取链接数据)
建立名为ncov(因新冠病毒名称暂为2019ncov,所以起了这么一个名字)
(1)名称:linktable
作用:用来存储链接数据
主要字段(从models.py中复制而来,默认还有多个自增的id字段):
linktitle = models.CharField(max_length=100, blank=True, null=True) linkvule = models.CharField(max_length=100, blank=True, null=True)
linkdate = models.DateField(blank=True, null=True)
(2)名称:tota
作用:用来存储各种病例数据
主要字段(从models.py中复制而来,默认还有多个自增的id字段): city = models.CharField(max_length=45, blank=True, null=True) number_doubt = models.IntegerField(blank=True, null=True) number_ok = models.IntegerField(blank=True, null=True) number_total = models.IntegerField(blank=True, null=True) number_dead = models.IntegerField(blank=True, null=True) number_recure = models.IntegerField(blank=True, null=True) date_record = models.DateField(blank=True, null=True) totalcol = models.CharField(max_length=45, blank=True, null=True)
这里主要用到city(城市名称),number_ok(确诊病例数),后续因为时间有限仅仅统计了确诊病例数,如要其他数据,比如nunber_dead(死亡病例)number_recure(治愈病例)等,需要调整抓取数据的关键字,重新抓取数据。因为是学习探路,笔者仅仅实验了抓取确诊病例数,有兴趣的可以自行研究下。
建立一个名为nCov的Django工程,而后再建立一个名为epidemic的应用。 使用 python manage.py inspectdb epidemic/models.py 生成模型
**【注意】**因为是反复试验的结果,文件名不是很规范,还有很多冗余代码,请自行忽略
(1)建立static文件夹 在nCov工程下建立static文件夹(与epidemic,nCov应用平级)
到Highmaps下载highcharts和highmaps而后将其加压复制到子文件夹js中,如图所示
还得下载一个jquery-1.8.3.js文件放置在jquery中
highmaps中的china.js和yunnan.js文件可到Highmaps下载
注意js文件要通过分析下载的html文件获取,比如云南省.html中会有如下语句
<script src="https://img.hcharts.cn/highmaps/highmaps.js"></script>
<script src="https://data.jianshukeji.com/geochina/yunnan.js"></script>
其中:https://data.jianshukeji.com/geochina/yunnan.js 就是yunnan.js文件的下载地址。
(2)在templates文件夹下建立HTML模板文件
如图所示
(3)在epidemic下建立新建若干py文件
如图所示
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。