자바 현재 전염병 상황 데이터 항목 총화

11685 단어
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.net.ssl.HttpsURLConnection;

import com.alibaba.fastjson.JSONArray;

import net.sf.json.JSON;
import net.sf.json.JSONObject;

public class ggg {
    public static void main(String[] args) throws IOException, SQLException {
        getAreaStat();
    }


    private static String httpRequset(String requesturl) throws IOException {
        StringBuffer buffer = null;
        BufferedReader bufferedReader = null;
        InputStreamReader inputStreamReader = null;
        InputStream inputStream = null;
        HttpsURLConnection httpsURLConnection = null;
        try {
            URL url = new URL(requesturl);
            httpsURLConnection = (HttpsURLConnection) url.openConnection();
            httpsURLConnection.setDoInput(true);
            httpsURLConnection.setRequestMethod("GET");
            inputStream = httpsURLConnection.getInputStream();
            inputStreamReader = new InputStreamReader(inputStream, "utf-8");
            bufferedReader = new BufferedReader(inputStreamReader);
            buffer = new StringBuffer();
            String str = null;
            while ((str = bufferedReader.readLine()) != null) {
                buffer.append(str);
            }
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return buffer.toString();
    }


    public static String getAreaStat() throws SQLException {
        String url = "https://ncov.dxy.cn/ncovh5/view/pneumonia";
        String htmlResult = "";
        try {
            htmlResult = httpRequset(url);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    

        
        String reg = "window.getAreaStat = (.*?)\\}(?=catch)";
        Pattern totalPattern = Pattern.compile(reg);
        Matcher totalMatcher = totalPattern.matcher(htmlResult);
        System.out.println(htmlResult);
        String result = "";
        if (totalMatcher.find()) {
            result = totalMatcher.group(1);
            System.out.println(result);
    
            JSONArray array = JSONArray.parseArray(result);
            
            
            Connection conn=DBUtil.DBUtil.getConnection();
            String sql=null;
            PreparedStatement pst=null;
            sql = "insert into sheng values(?,?,?,?) ";  
            
             Date dNow = new Date( );
              SimpleDateFormat ft = new SimpleDateFormat ("yyyy MM dd ");
              String time=ft.format(dNow);
            

                for (int i = 0; i <= 30; i++) {

                    com.alibaba.fastjson.JSONObject jsonObject =array.getJSONObject(i);
                    String provinceName = jsonObject.getString("provinceName");
                    
                        String current = jsonObject.getString("currentConfirmedCount");
                        String confirmed = jsonObject.getString("confirmedCount");
                        String cured = jsonObject.getString("curedCount");
                        String dead = jsonObject.getString("deadCount");
                        String suspect = jsonObject.getString("suspectedCount");
                        System.out.println(provinceName);
                        
                         pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);  
                        
                            
                        
                            pst.setString(1, provinceName);  
                            pst.setString(2,confirmed ); 
                            pst.setString(3, cured); 
                            pst.setString(4, time);
                            pst.executeUpdate();
                        
                        
                        JSONArray array2 = jsonObject.getJSONArray("cities");
                        for (int j = 0; j < array2.size(); j++) {
                            com.alibaba.fastjson.JSONObject jsonObject2 =array2.getJSONObject(j);
                            String cityname = jsonObject2.getString("cityName");
                            String current2 = jsonObject2.getString("currentConfirmedCount");
                            String confirmed2 = jsonObject2.getString("confirmedCount");
                            String cured2 = jsonObject2.getString("curedCount");
                            String dead2 = jsonObject2.getString("deadCount");
                            String suspect2 = jsonObject2.getString("suspectedCount");
                            
                        }
                }
        }
        return result;
    }
}

기어 오 른 데 이 터 는 정향 의사의 것 으로 데이터 가 JSONarray 형식 이기 때문에 정규 표현 식 으로 추출 하여 JSONarray 로 변환 한 다음 에 가 져 와 서 사용 하면 된다.
로그:
 
날짜.
번호
유형
도입 단계
배제 단계
복구 시간
결함 을 복구 하 다
 3.10

 
 부호화
부호화 
3.10 
JSONARray 사용 불가
설명: JSONarray 는 jsoup - 1.7.2. jar 와 fastjson - 1.2.66. jar 를 구축 경로 로 가 져 오지 않 았 습 니 다.
 
날짜.
번호
유형
도입 단계
배제 단계
복구 시간
결함 을 복구 하 다
 3.10

 
부호화 
 부호화
 3.10
데 이 터 를 찾 을 수 없습니다. 
설명: 정규 표현 식 사용 이 익숙 하지 않 습 니 다. "()"에 서 는 정규 표현 식 으로 내용 을 캡 처 합 니 다.

좋은 웹페이지 즐겨찾기