솔데스크 웹페이지에서 공지사항 제목만 크롤링해서 soldesk.txt 파일에 저장하기
솔데스크
실력과 인품을 겸비한 인재양성 교육기관 - 솔데스크
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 |