๐ถ JSOUP
1. HTML ๋ฌธ์์ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ ์ถ์ถํ๋ JAVA ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
2. ์ ์ ํ์ด์ง๋ฅผ ํฌ๋กค๋ง ํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
๐ถ ํฌ๋กค๋ง(Crawling)
HTML ํ์ด์ง๋ฅผ ๊ฐ์ ธ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ์์ ์ ์๋ฏธ
1. ๋์ ํ์ด์ง๋ ํฌ๋กค๋ง ๋์ง ์๋๋ค. (ํ์ฑ ์ HTML ์์ค๋ฅผ ๊ฐ์ ธ์ด)
2. ๋์ ํ์ด์ง๋ฅผ ํฌ๋กค๋งํ๋ ๋ฐฉ๋ฒ์๋ ์ ๋ ๋์(Selenium)์ด ์๋ค.
๐ถ ์ฌ์ฉ์์
1. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ : https://mvnrepository.com/artifact/org.jsoup/jsoup
2. Maven, Gradle๊ณผ ๊ฐ์ ๋น๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์กด์ฑ์ ์ถ๊ฐํ๊ฑฐ๋ jar๋ฅผ ๋ค์ด๋ฐ์ ํด๋์คํจ์ค์ ์ถ๊ฐํ๋ค.
๐ถ ์์ค
import java.io.IOException;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTest {
public static void main(String[] args) {
// [Test URL] : SBS News
String URL = "https://news.sbs.co.kr/news/newsflash.do?plink=SNB&cooper";
// [Document] : Jsoup์ผ๋ก ๊ฐ์ ธ์จ HTML์ ๋ด์ ๊ฐ์ฒด
Document doc = null;
try {
// URL์ ํด๋นํ๋ HTML ์ ์ฒด ๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ
doc = Jsoup.connect(URL).get();
} catch(IOException e) {
e.printStackTrace();
}
// ์ถ๋ ฅ ๋ณ์ ์ ์ธ
String title;
String content;
String date;
String writer;
// [Element] : Document์ HTML ์์
// [Elements] : Element๊ฐ ๋ชจ์ธ ์๋ฃํ
// ํน์ ๊ฐ ์ถ์ถ : css ์ ํ๋ฌธ๋ฒ์ ์ด์ฉ, ํ๊ทธ๋ฅผ ๊ฒ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
List<Element> elements = doc.select(".w_news_list ul > li");
// ๊ฒฐ๊ณผ ๊ฐ ์ถ๋ ฅ
for(Element element : elements) {
title = "^title : " + element.getElementsByClass("sub").text();
content = "^content : " + element.getElementsByClass("read").text();
date = "^date : " + element.getElementsByClass("date").text();
writer = "^writer : " + element.getElementsByClass("name").text();
System.out.print(title + "\n" + content + "\n" + date + "\n" + writer + "\n");
System.out.println("-------------------------------------------------");
}
}
}
๐ถ ๊ฒฐ๊ณผ

๐ถ ์ฐธ๊ณ
Java HTML parser, Jsoup๋ก ์ํ๋ ๊ฐ ์ป์ด๋ด๊ธฐ - ๊ธฐ๋ณธ
Jsoup๋ ์์ฃผ ๊ฐ๋ ฅํ๊ณ ์ฌ๋ฏธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ๋จ์ํ HTML ๋ฌธ์ ํ์ฑ์ ๋์ด ์น ์ฌ์ดํธ์ ๋ํ Request, Response๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ ์ ์๋ค. ๋๋ถ์ ์ผ๋ถ ํน๋ณํ ๊ฒฝ์ฐ(ํ๋์, ์ ํ๋ฆฟ, ActiveX๊ฐ์ ๋นํ์ค
partnerjun.tistory.com
[Java] - Jsoup์ ์ด์ฉํ ํฌ๋กค๋ง(feat. ์ธํ๋ฐ)
• ์๋ ํ์ธ์~ ์ด์ ์ ์ด์ํ๋ ๋ธ๋ก๊ทธ ๋ฐ GitHub, ๊ณต๋ถ ๋ด์ฉ์ ์ ๋ฆฌํ๋ Study-GitHub ๊ฐ ์์ต๋๋ค! • ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ • GitHub • Study-GitHub • ๐ ๐ Jsoup์ ์ด์ฉํ ํฌ๋กค๋ง ์๋ ํ์ธ์! ์ด๋ฒ์ ์ ๋ฆฌ
zzang9ha.tistory.com