数据分析疫情图——day9

  • 一. 写入数据库
  • 二.Tomcat的安装和使用
    • 2.1 安装
    • 2.2 使用
  • 三.出现问题
    • 3.1 cmd和navicat数据库乱码 为 ?
    • 3.2 启动server出现端口问题

好好学习,javaweb制作全国疫情展示,接下来要用java爬虫爬取数据,然后放到数据库,以下是今天学习的知识(身体不舒服简单整理一下),

第一天:数据分析疫情图——day1
第二天:数据分析疫情图——day2
第三天:数据分析疫情图——day3
第四天:数据分析疫情图——day4
第五天:数据分析疫情图——day5
第五天:数据分析疫情图——day6
第五天:数据分析疫情图——day7
第五天:数据分析疫情图——day8

一. 写入数据库

我们在昨天也就是第八天已经创建了一个实体类province,并且设计了它的数据库,还有tomacat服务器的使用那么我们现在将爬取到的数据导入数据库中

需要导入的包

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;import cn.tedu.entity.Province;
import cn.tedu.util.JdbcUtil;
public class TestDataInsert {//集合ListList<Province> proList = new ArrayList<Province>();/*** 爬取数据:* province   List<province>* */public List<Province> getInfo() {//1、要爬取的网站String url = "https://ncov.dxy.cn/ncovh5/view/pneumonia";//2、爬取出整个页面Document doc = null;try {doc = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36").get();//System.out.println(doc);} catch (IOException e) {e.printStackTrace();}String resultStr = doc.html();//System.out.println(result);//3、做数据的筛选String regex = "window.getAreaStat = (.*?)\\}(catch)";Pattern patt = Pattern.compile(regex);System.out.println(patt);Matcher matcher = patt.matcher(resultStr);//System.out.println(matcher);String result = "";if (matcher.find()) {result = matcher.group(1);//System.out.println(result);////数据的解析----------json数据//TODO..ObjectMapper mapper = new ObjectMapper();try {JsonNode jn = mapper.readTree(result);//System.out.println(jn);for (int i = 0; i < jn.size(); i++) {//创建对象Province pro = new Province();String provinceName = jn.get(i).get("provinceName").asText();int currentConfirmedCount = jn.get(i).get("currentConfirmedCount").asInt();int confirmedCount = jn.get(i).get("confirmedCount").asInt();int deadCount = jn.get(i).get("deadCount").asInt();int curedCount = jn.get(i).get("curedCount").asInt();System.out.println("地区:" + provinceName + ", 现存确诊:" + currentConfirmedCount + ", 累计确诊:" + confirmedCount + ", 死亡数:" + deadCount + ", 治愈:" + curedCount);pro.setProvinceName(provinceName);pro.setConfirmedCount(confirmedCount);pro.setCurrentConfirmedCount(currentConfirmedCount);pro.setCuredCount(curedCount);pro.setDeadCount(deadCount);//将爬取出来的数据,放到集合中去。proList.add(pro);//取出来数据JsonNode jn1 = jn.get(i).get("cities");//System.out.println(jn1);for (int j = 0; j < jn1.size(); j++) {String cityName = jn1.get(j).get("cityName").asText();int confirmedCount1 = jn1.get(j).get("confirmedCount").asInt();int currentConfirmedCount1 = jn1.get(j).get("currentConfirmedCount").asInt();int curedCount1 = jn1.get(j).get("curedCount").asInt();int deadCount1 = jn1.get(j).get("deadCount").asInt();System.out.println("城市:" + cityName + ", 现存确诊:" + currentConfirmedCount1 + ", 累计确诊:" + confirmedCount1+ ", 死亡数:" + deadCount1+ ", 治愈:" + curedCount1);}}} catch (IOException e) {e.printStackTrace();}}return proList;}@Testpublic void testInsert() {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;//使用jdbc将爬取出来的数据放到数据库中//jdbc获取连接--jdbcutilList<Province> proList = getInfo();try {conn = JdbcUtil.getConn();//传输器对象String sql = "insert into province values(?,?,?,?,?)";ps = conn.prepareStatement(sql);for (int i = 0; i < proList.size(); i++) {Province pro = proList.get(i);ps.setString(1, pro.getProvinceName());ps.setInt(2, pro.getCurrentConfirmedCount());ps.setInt(3, pro.getConfirmedCount());ps.setInt(4, pro.getDeadCount());ps.setInt(5, pro.getCuredCount());int rows = ps.executeUpdate();System.out.println("rows" + rows);}//结果集对象} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {//释放资源--jdbcutilJdbcUtil.release(conn, ps, rs);}}
}

二.Tomcat的安装和使用

2.1 安装

tomcat安装:以下是我老师博客连接,里面有详细教程

https://blog.csdn.net/weixin_43639180/article/details/107309531

2.2 使用

将javaweb项目放进去,就可以使用运行了

创建一个servlet


三.出现问题

3.1 cmd和navicat数据库乱码 为 ?

eciples在连接数据库这里添加:?characterEncoding=utf8

String url = "jdbc:mysql://localhost:3300/da01?characterEncoding=utf8";

cmd

可以查看以下三个连接的方法,我也是跟着一顿瞎操作弄好的,就是将数据库编码和eciples中的编码变成一样就行了

Java插入中文到数据库中文变成问号解决

修改表和字段的编码格式

中文乱码
到cmd中查看修改数据库的编码,以下是查看命令,发现character_set_database是latinl,修改为utf8

 show variables like '%char%' ;

SET character_set_database='utf8';
#查看数据表编码
show create table 数据表;
show variables like 'character_set_database';

navicat

如果navicat还是?,那么修改连接的编码为自动就可以了

外加小知识

创建表的时候记得加上utf8

列如:

CREATE TABLE `city` (`CityName` varchar(20) DEFAULT NULL,`Name` varchar(20) DEFAULT NULL,`CurrentConfirmedCount` int(11) DEFAULT NULL,`ConfirmedCount` int(11) DEFAULT NULL,`DeadCount` int(11) DEFAULT NULL,`CuredCount` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

或者去navicat数据表里面修改:

3.2 启动server出现端口问题

修改以下端口就好

Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process

以下是修改端口方法的连接:

https://www.php.cn/apache/463783.html

数据分析疫情图——day9相关推荐

  1. 数据分析疫情图——day7

    数据分析疫情图--day7 一. 异常 二 . 集合API 三. Map接口 四.简单爬取页面数据 前言 好好学习,javaweb制作全国疫情展示,接下来要用java爬虫爬取数据,以下是今天学习的知识 ...

  2. 【python】数据分析绘制疫情图(爬取数据+保存Excel+echart绘制地图)

    数据分析师工作中常规流程一般是:数据获取.数据处理.数据分析展示等. 本篇通过国内疫情数据实现数据从爬取到展示的过程. 介绍 py版本:python 3.8 目标绘制全国疫情图. 思路 通过以下三个方 ...

  3. 利用Python绘制中国新型冠状病毒疫情图(国家和省)

    大数据课程设计上来就要求绘制一个地图可以反应出来中国各个省份每日疫情的人数,包括确诊,疑似,死亡,治愈.如下图所示: 这里用到了Python中的pyecharts库,点此了解详细信息 1.先来将需要的 ...

  4. 数据分析---疫情数据可视化(地图)

    数据分析---疫情数据可视化(地图) 安装pyecharts库 爬取所需要的数据(网上直接爬取数据) 绘制全国地图 绘制省份地图(以湖北省为例) 在全国地图上加入湖北省数据 导入数据(本地导入数据) ...

  5. 统计学基于matlab,MATPLOT:一款基于MATLAB的地球化学数据分析成图软件

    在地球化学研究中,数据图解可以直观展示数据的规律和特征,一直以来是研究人员必不可少的分析手段.迄今为止,国内外开发了多款数据分析成图软件(例如, 为了解决以上问题,并且满足目前研究工作中的一些需求,我 ...

  6. python如何绘制两点间连线_如何用 Python 绘制玫瑰图等常见疫情图

    新冠疫情已经持续好几个月了,目前,我国疫情已经基本控制住了,我们会看到很多网站都提供了多种疫情统计图,今天我们使用 Python 的 pyecharts 框架来绘制一些比较常见的统计图. 1. 玫瑰图 ...

  7. python模型疫情预测_用Python制作实时疫情图

    本文技术点: requests, echarts, pyecharts 最近一周每天早上起来第一件事,就是打开新闻软件看疫情相关的新闻.了解下自己和亲友所在城市的确诊人数,但纯数字还是缺乏一个直观的概 ...

  8. Vue Echarts 河南省疫情图

    效果图 代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF ...

  9. Python 大数据分析疫情:如何实现实时数据爬取及 Matplotlib 可视化?

    作者 | 杨秀璋 来源 | CSDN博客专家Eastmount 责编 | 夕颜 思来想去,虽然很忙,但还是挤时间针对这次肺炎疫情写个Python大数据分析系列博客,包括网络爬虫.可视化分析.GIS地图 ...

最新文章

  1. 【Google Play】声明广告权限 ( you must declare the AD_ID Permission when your app targets Android 13 )
  2. mysql递归查询所有上下节点_【转】MySQL之Spider存储引擎原理详解
  3. hadoop 2.4.1 集群安装一
  4. [Coderforces600E] Lomsat gelral
  5. linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager
  6. android系统密码文件夹,安卓手机如何隐藏(加密)文件夹(软件) 安卓手机隐藏(加密)文件夹(软件)的方法...
  7. 归一化函数mapminmax的讨论
  8. centos7下yum安装mysql_CentOS7下使用YUM安装MySQL5.6-Go语言中文社区
  9. Linux多线程编程详细解析----条件变量 pthread_cond_t
  10. 在python中怎么排序_怎么在python的字典中进行排序
  11. unity3d补间动画DoTween
  12. 密码学与网络安全—知识点总结
  13. 深入支付宝支付扫描支付-跳转支付宝二维码页面支付与自定义生成二维码支付-2跳转固定的支付宝页面进行扫码支付
  14. 丝路传说架设服务器维护,《丝路传说》一键整合服务端+GM工具+视频架设教程...
  15. Arduino基础入门篇01—进入Arduino的世界
  16. python:matplotlib基础(1)
  17. FFMPEG将视频切片成ts文件并对ts文件进行ASE加密,并合并成M3U8操作方法
  18. [小工具] 微信小程序代码压缩器
  19. Android设置背景色
  20. 4000GB、数百亿条个人信息泄露!大数据行业知名企业数据堂被查

热门文章

  1. 计算机一级考试ppt制作教程,大学计算机一级考试考PPT制作吗?
  2. 怎么禁止查看html,如何禁止用户查看网页源代码
  3. [by王谭]虚拟机安装linux出现this hardware is not supported by centos
  4. 【NCRE】——c#判断ppt中的艺术字
  5. 基于python的时间序列案例-时间序列预测全攻略(附带Python代码)
  6. tp5 HBuilder h5打包app,并下载
  7. 数据集标注软件labelImg使用方法
  8. 手机屏幕反转尺寸_如何在Android手机的屏幕上反转颜色
  9. 【软考软件评测师】2015综合知识历年真题
  10. 常用usb type c插座引脚图和功能差异