# 측정소와 수온 ''실시간 수질정보시스템(http://koreawqi.go.kr/index_web.jsp)'' 에서는 수계별 실시간 수질자료를 제공합니다. 수계별 실시간 수질자료 내용은 iframe을 사용하므로, 해당 소스로 접속합니다. ```java static String targetURL = "http://koreawqi.go.kr/wQSCHomeLayout_D.wq?action_type=T"; ``` ''GET'' 방식으로 접근하여 HTML 코드를 가져옵니다. 모든 줄바꿈을 제거 합니다. ```java content += line.replace(System.getProperty("line.separator"), ""); ``` 그 후에 모든 공백을 제거 합니다. ```java content = content.replaceAll("\\s+",""); ``` 그 중에서 ``` 평창강1.2 ``` 위와 같은 문자열에서 원하는 값을 찾기 위해 정규표현식을 작성합니다. ```java Pattern pp = Pattern.compile("(?.+?)(?.+?)"); ``` 이를 출력하면 ```java System.out.println("측정소:"+mm.group("POINT") + "\t" + "수온:" + mm.group("TEMPO")); ``` 아래와 같은 결과를 얻을 수 있습니다. ``` 측정소:평창강 수온:1.2 측정소:단양 수온:1.9 측정소:충주 수온:4.6 측정소:달천 수온:1.8 측정소:원주 수온:2.2 ``` # 전체 소스 ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FishingTemp { HttpURLConnection httpConn = null; static String targetURL = "http://koreawqi.go.kr/wQSCHomeLayout_D.wq?action_type=T"; public void printInfo() { // TODO Auto-generated method stub String urlParameters = ""; // 파라메타값 try { URL url = new URL(targetURL); httpConn = (HttpURLConnection) url.openConnection(); // 헤더 선언 httpConn.setRequestMethod("GET"); httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); // httpConn.setRequestProperty("Cookie", "cookievalue="+ cookie); httpConn.setUseCaches(false); httpConn.setDoInput(true); httpConn.setDoOutput(true); PrintWriter pw = new PrintWriter(new OutputStreamWriter(httpConn.getOutputStream(), "utf-8")); pw.write(urlParameters); pw.flush(); pw.close(); // Get Response InputStream is = httpConn.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; String content = ""; while ((line = rd.readLine()) != null) { content += line.replace(System.getProperty("line.separator"), ""); //System.out.println(line); // response1.append('\r'); } content = content.replaceAll("\\s+",""); //System.out.println(content); // 평창강1.2 // (?.+)(?.+) Pattern pp = Pattern.compile("(?.+?)(?.+?)"); Matcher mm = pp.matcher(content); while (mm.find()) { System.out.println("측정소:"+mm.group("POINT") + "\t" + "수온:" + mm.group("TEMPO")); //type type = (type) mm.find().nextElement(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ```