- 10월부터 미니프로젝트 진행 후 졸업작품 제안서 제작 예정
이야.. 이걸 어쩐다..
정식명칭은 'Web Scraping'
웹 페이지의 특정 형태의 정보를 수집하는 것이다.
컴퓨터 소프트웨어 기술로 웹사이트들을 돌아다니면서 정보를 수집하는 행위
나에게 유용한 정보를 뽑아내야 한다.
'페이지 소스보기', '개발자 검사'로 자세히 볼 수 있다.
↳ 다이나믹 웹 프로젝트 생성
↳ 위에는 .java 소스가 들어가는 파일이고, 밑에는 .class 파일이 들어가는 파일의 경로이다.
↳ basic02_jdbc 에 넣었던 ojdbc8.jar 파일 복사해서 붙여넣기
↳ https://jsoup.org/download
사이트 들어가서 jsoup-1.15.3.jar 파일 다운받은 후
↳ basic03_crawling 프로젝트의
/src/main/webapp/WEB-INF/lib/jsoup-1.15.3.jar 붙여넣기
↳ 외부라이브러리 추가하면 해당 프로젝트 새로고침 하기
- 해당프로젝트 우클릭 F5
- 해당프로젝트 우클릭 Validate
- 메뉴 Project -> Clean
https://www.choongang.co.kr/html/sub07_01_n.php
1) 웹사이트의 페이지 소스보기
2) 페이지 소스보기 페이지에서 원하는 정보를 가져온다.
3) 자바로 페이지 소스 가져오기
※ 주의사항
↳ 이름이 똑같은 함수 틀리지 않게 조심하기. 크롤링 할 때는 jsoup이 들어가있는 document 선택해야한다.
4) 결과확인
System.out.println(doc.toString());
↳ 페이지 소스가 자바프로그램에서 출력된다.
↳ page=6 공지사항은 9페이지라는 의미.
1) 웹페이지 주소를 string으로 앞뒤를 구분하여 자른다.
↳ for문으로 1~11페이지까지 반복해주면 11페이지 까지 모두 출력된다.
↳ Document doc = Jsoup.connect(URL+params).get();
- ="?page=" + p + "&mod=&idx="
이 들어있는 params
변수값을 document에 넣어주면 1페이지~11페이지 모든 소스코드가 출력된다.
1) 개발자 모드 들어가서 페이지 소스 확인하기
2) 마우스로 제목 소스코드 확인
↳ class="default_title" 복사해서 넣으면 제목만 추출이 된다.
↳ <tr class="board_default_list">
도 앞에 추가해주면
↳ 하위 메뉴들도 추출이 가능하다.
↳ 크롤링의 임포트 요소들은 jsoup으로 선택해야한다.
↳ 물음표를 기준으로 주소 부분은 앞부분에 있는 초록색 주소를 넣어주고,
↳ 페이지 넘버가 바뀌는 뒷부분은 파란색 주소를 넣어준다.
↳ 폴더에도 생성 완료~
↳ td_m_date 에 날짜정보가 들어가있다.
네이버 영화 평점 댓글 공감순으로 정렬한 것 데이터 가져오기
↳ order by로 newest 이부분을 변수처리하면 페이지를 원하는 값을 노출시킬 수 있다.
↳ 네이버 평점은 댓글 페이지가 변해도 url이 바뀌지 않는다.
↳ url은 안바뀌고 댓글 내용은 바뀜. 어떻게 한거지 ??
↓↓↓↓↓↓↓↓↓↓ 해결방법 ↓↓↓↓↓↓↓↓↓↓
↳ 이부분이 iframe으로 되어있기 때문임.
↳ 페이지 내부에 페이지를 만든 것.
↳ 개발자모드로 iframe 부분을 찾는다.
↓↓↓↓↓↓↓↓↓↓ iframe 찾기 → 그 부분의 페이지 마우스
↳ 이부분은 영화 코드번호라는 걸 알 수 있다.
↳ span 태그로 감싸져있고 span안에 있는 빨간 칸 내용이 제목을 처리되어 있다.
↳ id값으로 주었고 뒤에 숫자를 붙여서 일련번호를 지정해줬다.
↳ 최종적으로 이렇게 구성되어있는 것이다.
↳ 뒤에있는 숫자를 변수처리를 해주면 댓글을 모두 가져올 수 있다.
↳ class 태그로 가져올 수 있다. (원래는 id로 가져왔음)
↳ class 태그 score_reple로 가져오면 remove()함수로 관람객을 제거해주면 똑같이 값을 가져올 수 있다.
↳ score_reple을 가져오고, ico_viewer를 제거해주면 똑같은 결과를 도출할 수 있다.
↳ 마지막 &page=부분의 뒤에있는 페이지 숫자는 입력하지 않아야 한다.