스크래핑이란
- 데이터를 많이 모으는 작업을 말한다.
크롤링이란
- 데이터를 정제하고 원하는 형태로 가공하는 작업을 말한다.
- 요즘은 스크래핑과 합하여 크롤리이라 칭한다.
- 데이터를 많이 모아서 원하는 output으로 정제 가공하는 작업이다.
- 빅데이터에서 많이 활용되는 기술이다.
크롤링 방법
- 타켓 웹 페이지의 URL을 알아낸다.
- URL은 페이지로 구성되어있다.
- 개발자가 페이지를 코드로 작성하면, 웹 브라우저가 코드를 해석해서 UI로 구현해서 보여준다.
- 외부 라이브러리인 jsoup을 이용해 DB와 같은 방식으로 데이터(소스)를 긁어온다.
jsoup: Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety
jsoup: Java HTML Parser jsoup is a Java library that simplifies working with real-world HTML and XML. It offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM API methods, CSS, and xpath selectors. jsoup implement
jsoup.org
예제 코드
public class Test01 {
public static void main(String[] args) {
// 데이터가 변질되지 않도록 상수화한다.
final String url="http://www.cgv.co.kr/movies/?lt=1&ft=0";
// 웹 페이지 정보를 JAVA에서는 Document라고 함
Document doc=null;
// 우리가 사용할 웹 페이지 정보(Document) 타입은 JAVA에서 기본제공 x
// 외부로부터 Document를 지원해줄수있는 .jar파일을 추가해야함!
// == ojdbc6.jar
// jsoup.jar
try {
// Jsoup.connect(url) => connection 객체가 반환됨
// connection.get() => document 객체가 반환됨
// JDBC와 유사
doc=Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(doc);
// 내가 확인하고 싶은 영화 제목은
// <strong class="title">로 되어있다!
Elements elems=doc.select("strong.title");
// 웹페이지에서의 요소
// element
// 엘리먼트
// 태그
// <>
// Elements 는 일종의 ResultSet 역할
// 이터레이터
// 복사체
// 컬렉션의 한 종류
Iterator<Element> itr=elems.iterator();
// ResultSet 처럼 1개씩 보여줄수가없어서.
// 1개씩 보여주려고 itr 를 사용함!
while(itr.hasNext()) {
String str=itr.next().text();
System.out.println(str);
}
}
}