▶ 데이터 수집
1. 기본 방법으로 수집
package prac01;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class 데이터수집1 {
public static void main(String[] args) throws IOException {
URL url = new URL("http://ggoreb.com/quiz/harry_potter.txt");
URLConnection con = url.openConnection();
InputStream in = con.getInputStream(); // getFileInputStream(); 으로 작성할경우 내장되어있는 파일을 가져올 수 있음
String result = "";
while(true) {
int data = in.read();
if(data == -1) break;
char c = (char) data;
result += c;
}
System.out.println(result);
}
}
2. euc-kr 문자 표현 방식으로 변경 후 수집
package prac01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class 데이터수집2 {
public static void main(String[] args) throws IOException {
URL url = new URL("http://ggoreb.com/quiz/운수좋은날.txt");
URLConnection con = url.openConnection();
InputStream in = con.getInputStream();
InputStreamReader isr = new InputStreamReader(in, "euc-kr");
BufferedReader reader = new BufferedReader(isr);
String result = "";
while(true) {
String data = reader.readLine();
if(data == null) break;
result += data + "\n";
}
System.out.println(result);
}
}
3. Jsoup (웹 크롤링 라이브러리) 를 이용한 데이터 수집
public class 데이터수집3 {
public static void main(String[] args) throws IOException {
Connection con = Jsoup.connect("http://ggoreb.com/hrd");
Document doc = con.get();
Elements items = doc.select("a");
for (int i = 0; i < items.size(); i++) {
Element item = items.get(i);
String text = item.text();
String href = item.attr("href");
System.out.println(text);
System.out.println(href);
}
}
}