자바 현재 전염병 상황 데이터 항목 총화
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
1
부호화
부호화
3.10
JSONARray 사용 불가
설명: JSONarray 는 jsoup - 1.7.2. jar 와 fastjson - 1.2.66. jar 를 구축 경로 로 가 져 오지 않 았 습 니 다.
날짜.
번호
유형
도입 단계
배제 단계
복구 시간
결함 을 복구 하 다
3.10
2
부호화
부호화
3.10
데 이 터 를 찾 을 수 없습니다.
설명: 정규 표현 식 사용 이 익숙 하지 않 습 니 다. "()"에 서 는 정규 표현 식 으로 내용 을 캡 처 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.