史上最全的疫情历史数据

前言

这久做的要整理疫情开始以来到现在的疫情数据,今年元旦放假,正好有时间来解决这个事。经过两天的奋斗,各省份所有的历史数据我均已收集完成。上次只是收集了贵州省的,后来我发现数据和爬虫代码还有待优化,所以花了一天的时间对原来的代码进行优化和补充。所以本次收集的数据更加的系统化、更加准确和更加完整。

数据获取

本次爬虫代码的编写依旧是基于springboot框架,代码相较上次也更加的稳定,运行爬虫系统代码可以很容易的获取到所有的历史数据。
收集的数据存储在mysql数据库中,这需要在数据库中建34张数据表来存储对应的历史数据如下图所示:
在这里插入图片描述
爬虫系统的mybatis的部分代码如下:
在这里插入图片描述
本部分的代码编写并不难,只是需要细心一些,别把对应数据库的表明弄混了。
爬虫爬取网页的主要部分是在系统的服务层实现,整体代码结构如下:
在这里插入图片描述
在将数据写入数据库的方法中需要做一个判断,判断省份以找到数据库中对应的数据表存储数据:
在这里插入图片描述
系统中主要获取数据的代码如下

public String PostData(String URL,String province){
        try{
            Connection connection = Jsoup.connect(URL);
            connection.header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36").ignoreContentType(true).execute();
            Document document = connection.post();
            ParseData(document.toString(),province);
        }catch (IOException e){
            System.out.println("出现异常"+e);
        }
        return null;
    }
 public String ParseData(String text,String province){
        String re_text = "\\{\"ret\"(.*?)}]}";
        Pattern pattern = Pattern.compile(re_text);
        Matcher matcher = pattern.matcher(text);
        if(matcher.find()){
            JSONObject jsonObject = JSON.parseObject(matcher.group());
            JSONArray jsonArray = (JSONArray) jsonObject.get("data");
            for (int i=0;i<jsonArray.size();i++){
                getEntityData((JSONObject) jsonArray.get(i),province);
            }
        }
        return null;
    }

以上只是爬虫的部分代码,仅供参考讨论,单独无法运行。若需要系统源代码请私信我。

数据结果展示

代码编写完成后下图是运行成功时的日志:
在这里插入图片描述
此时,数据已经爬取到数据库中了,以下是数据库中的数据:
在这里插入图片描述
在这里插入图片描述
这是其中一个省的历史表格数据。
下图则是将数据表从数据库中导出为Excel表格的形式
在这里插入图片描述
在这里插入图片描述
至此,全部的新冠疫情历史数据便获取完成。
之前我便提到过,此次用springboot框架实现爬虫系统,是为了使整个爬虫具有可定制化特点,后期可以对数据进行可视化分析,或者也可以直接下载为Excel表格的形式。可以使数据获取和数据分析可视化耦合。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王道云码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值