웹 크롤링이란?
웹 데이터를 모아서 정제 및 가공하는 것
[정적 크롤링]
- 웹 페이지 데이터에만 접근,
- 페이지에 직접 작성된 데이터만 접근 가능
- "페이지 소스 코드 보기"로 보이는 데이터만 가져오는 것
- ex) jsoup
[동적 크롤링]
- 웹 페이지가 참조하는 데이터까지 접근 가능
- 본 서버의 데이터를 하이딩(은닉, 암호화)했다면 접근 불가능하다.
- ex) 셀레니움
참고!
크롤링 할 때 무신사나 쿠팡 같은 사이트는 다른 곳의 데이터를 가져다가 사용하는 것이기 때문에 크롤링하기 어려움.
멜론, 벅스, CGV 같은 곳들이 자기 데이터를 사용하기 때문에 상대적으로 크롤링하기 용이함.
이클립스 jsoup 설정
jsoup을 사용하기 위해서는 jsoup 파일 다운로드 후 설정이 필요하다.
1. 사용하려는 프로젝트 파일 우클릭 → Build Path → Configure Build Path.. 선택!
2. 왼쪽 메뉴 중 Java Build Path → 상단 Livraries 탭 → Add Extemal JARs... 클릭하여 원하는 jar파일 (다운로드한 jsoup 파일) 선택
3. 파일 추가된 내용 확인하고 하단의 Apply → Apply and Close
크롤링 사용법
public class Test01{
public static void main(String[] args){
String url = "크롤링할 사이트의 url";
// 만약, 해당 사이트의 url에 "index" 라는 단어가 있다면?
// 표지 페이지(첫 페이지)를 의미한다.
Connection conn = Jsoup.connect(url);
// Jsoup에서 해당 url로 연결을 시도한다는 뜻
try{
Document doc = conn.get();
// Document == 웹 페이지 화면 문서를 의미함.
Elements elems = doc.select("가져오고자 하는 요소");
// 연결이 잘 되었다면 해당하는 요소를 가지고 와달라는 뜻
for(Elements elem : elems){
System.out.println(elem.text());
}
// 해당 요소들을 보기 위한 for문
// .text()는 text만 보여달라는 의미
} catch (IOException e){
System.out.println("연결 중 에러 발생!");
}
}
}
먼저, 크롤링 할 사이트의 url을 가지고 와서,
해당 url을 Jsoup을 통하여 Connection 해준다.
그다음 Document를 통하여 해당 url의 페이지 화면 문서를 가지고 와서, select로 원하는 요소를 가지고 온다.
select (String cssQuery) : Elements
- Query : 스크립트 언어를 의미함 == CSS 언어
- Elements : 요소들
ex) Elements elems = doc.select("string.name");
>> 여기서 string.name == 웹 크롤링에서 원하는 요소!
웹에서는 모든 것을 요소로 본다. (ex. 로고 요소, 네비게이션 요소, 랭킹 요소 등...)
요소를 찾는 방법 : 크롤링 할 사이트에서 F12를 누른 뒤, 원하는 부분을 선택하여 해당 요소를 찾음!
Document에서 크롤링이 제대로 이루어지지 않을 수 있기 때문에, try-catch문으로 감싸준다.
'JAVA > java' 카테고리의 다른 글
[JAVA] jdk 1.8 설치 (0) | 2025.03.11 |
---|---|
[JAVA] Stack (0) | 2024.11.22 |
[JAVA] 파일 입출력 (0) | 2024.07.28 |
[JAVA] thread (0) | 2024.07.26 |
[JAVA] 예외 처리 (0) | 2024.07.26 |