python抓取网站数据并图形化显示(一)

这里主要介绍通过python抓取网站数据并图形化显示
先来看下最终效果
首页
在这里插入图片描述
趋势图
在这里插入图片描述
地图显示
在这里插入图片描述

一、整体思路

先抓取链接,存入MYSQL数据库,而后读取数据库中的链接,依次抓取网页的数据信息,最后在Django的基础上用highchart和highmap显示出来。因为新冠疫情爆发,大家对疫情数字比较关心,各平台也有相关的数据图表,咱也做一个试一试,就当是学习了。

二、具体操作

(一)条件

1.安装了PYTHON3.8
2.安装了MYSQL
3.安装了Django及相关包
4.使用pycharm
5.安装chrome浏览器(利用其抓取链接数据)

(二)步骤

1.建立数据库

建立名为ncov(因新冠病毒名称暂为2019ncov,所以起了这么一个名字)

2.建立表格

(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(治愈病例)等,需要调整抓取数据的关键字,重新抓取数据。因为是学习探路,笔者仅仅实验了抓取确诊病例数,有兴趣的可以自行研究下。

3.构建Django工程

建立一个名为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文件
如图所示
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值