웹개발 교육/Java

[41일] 크롤링 (4) - 공지사항 제목 크롤링 연습예제

2022. 9. 23. 15:40

솔데스크 웹페이지에서 공지사항 제목만 크롤링해서 soldesk.txt 파일에 저장하기

https://soldesk.com/board/board_bagic/board_list.asp?scrID=0000000173&pageNum=8&subNum=1&ssubNum=1&page=1&bd_num=&act=list&s_string= 

 

솔데스크

실력과 인품을 겸비한 인재양성 교육기관 - 솔데스크

soldesk.com

 

먼저 URL은 분석해보자

파란색을 표시한 부분의 숫자가 달라진다. 이 부분을 변수로 처리하자

 

package crawling0923;

import java.io.FileWriter;
import java.io.PrintWriter;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Test05_soldesk {

	public static void main(String[] args) {
		// 연습예제) 솔데스크 웹페이지에서 공지사항 제목만 크롤링해서 soldesk.txt 파일에 저장하기
		
		try {
			
			String fileName = "I:/java202207/soldesk.txt";
			FileWriter fw = new FileWriter(fileName, true);  //(내용)추가 모드
			PrintWriter out = new PrintWriter(fw, true);
			
			String URL = "https://soldesk.com/board/board_bagic/board_list.asp";
			
			
			for (int p=1; p<=8; p++) {
				String params = "?scrID=0000000173&pageNum=8&subNum=1&ssubNum=1&page=" + p + "&bd_num=&act=list&s_string=";
				
				//공지사항 웹페이지 1~8페이지 소스 가져오기
				Document doc = Jsoup.connect(URL+params).get();	
				//System.out.println(doc.toString());
				/*
					공지사항 제목 가져오기
					<td class="td_left">
					
					</td>
				*/
				
				Elements elements = doc.select(".td_left");				
				for (Element element : elements) {					
					System.out.println(element.text());
				}//for end
			}//for end
			
			out.close();
			fw.close();
			System.out.println("------soldesk.txt 공지사항 제목 저장 완성!!");
			
		} catch (Exception e) {
			System.out.println("크롤링 실패 : " + e);
		}//end	

	}//main() end
}//class end

크롤링을 하여 td_left 클래스의 내용을 가져왔다. 하지만 여기서 날짜도 같이 가져왔다. 날짜는 제외하고 제목만 가져오고 싶을 수도 있을 것이다.

 

이제 날짜를 제외한 제목만 가져오도록 해보자

//class="td_m_date" 요소 제거하기
elements.select(".td_m_date").remove();

select()를 사용하여 제거하고자 하는 요소를 선택한 뒤 remove()로 제거할 수 있다.

 

package crawling0923;

import java.io.FileWriter;
import java.io.PrintWriter;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Test05_soldesk {

	public static void main(String[] args) {
		// 연습예제) 솔데스크 웹페이지에서 공지사항 제목만 크롤링해서 soldesk.txt 파일에 저장하기
		
		try {
			
			String fileName = "I:/java202207/soldesk.txt";
			FileWriter fw = new FileWriter(fileName, true);  //(내용)추가 모드
			PrintWriter out = new PrintWriter(fw, true);
			
			String URL = "https://soldesk.com/board/board_bagic/board_list.asp";
			
			
			for (int p=1; p<=8; p++) {
				String params = "?scrID=0000000173&pageNum=8&subNum=1&ssubNum=1&page=" + p + "&bd_num=&act=list&s_string=";
				
				//공지사항 웹페이지 1~8페이지 소스 가져오기
				Document doc = Jsoup.connect(URL+params).get();	
				//System.out.println(doc.toString());
				/*
					공지사항 제목 가져오기
                    <td class="td_left">
                        <a href="javascript:goDetail('00000001732022000002','bd_num');" title="">
                            <!--모바일에서는 td_m_date에 날짜가 나오게해놨습니다.-->
                            <span class="td_m_date">2022-03-31</span>
                            아마존AWS클라우드 13기 / 자바파이썬빅데이터 3기 모집중
                        </a>
                    </td>
				*/
				
				Elements elements = doc.select(".td_left");		
				
				//class="td_m_date" 요소 제거하기
				elements.select(".td_m_date").remove();
				
				for (Element element : elements) {					
					System.out.println(element.text());
					out.println(element.text());  //soldesk.txt 파일 출력
				}//for end
			}//for end
			
			out.close();
			fw.close();
			System.out.println("------soldesk.txt 공지사항 제목 저장 완성!!");
			
		} catch (Exception e) {
			System.out.println("크롤링 실패 : " + e);
		}//end	

	}//main() end
}//class end

'웹개발 교육 > Java' 카테고리의 다른 글

[41일] 크롤링 (5) - 네이버 영화 평점  (0) 2022.09.23
[41일] 크롤링 (3) - 크롤링 결과 파일에 저장  (0) 2022.09.23
[41일] 크롤링 (2) - 공지사항 제목 가져오기  (0) 2022.09.23
[41일] 크롤링 (1) - 개요 및 jsoup 라이브러리 설치  (0) 2022.09.23
[40일] JDBC (14) - 페이징  (0) 2022.09.22
'웹개발 교육/Java' 카테고리의 다른 글
  • [41일] 크롤링 (5) - 네이버 영화 평점
  • [41일] 크롤링 (3) - 크롤링 결과 파일에 저장
  • [41일] 크롤링 (2) - 공지사항 제목 가져오기
  • [41일] 크롤링 (1) - 개요 및 jsoup 라이브러리 설치
ewok
ewok
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 노랭이
  • GIT
  • branch
  • merge commit
  • SQLD
  • sqld 합격
  • 생성자
  • 버전 관리
  • sqld 자격증
  • org.springframework.beans.factory.UnsatisfiedDependencyException
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • git bash
  • base
  • this
  • 브랜치

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
[41일] 크롤링 (4) - 공지사항 제목 크롤링 연습예제
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.