์น ํฌ๋กค๋ง์ด๋?
๋ค์ํ ์ ๋ณด ์์์ ์๋ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์งํด์ ๋ถ๋ฅ ๋ฐ ์ ์ฅํ๋ ๊ฒ
์น์ ๋ค์ํ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ๊ฒ์ํ๊ณ ๋ฐ์ดํฐ๋ก ์ถ์ถํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
์ ์ ํฌ๋กค๋ง
-> ์น ํ์ด์ง์๋ง ์ ๊ทผ
ํ์ด์ง์ ์ง์ ์์ฑ๋ ๋ฐ์ดํฐ๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
"ํ์ด์ง ์์ค ์ฝ๋๋ณด๊ธฐ " ๋ก ๋ณด์ด๋ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋๊ฒ
ex) jsoup
๋์ ํฌ๋กค๋ง
-> ์น ํ์ด์ง๊ฐ ์ฐธ์กฐํ๋ ๋ฐ์ดํฐ๊น์ง ์ ๊ทผ๊ฐ๋ฅ
๋ณธ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํ(์๋) ํ๋ค๋ฉด ์ ๊ทผ ๋ถ๊ฐ๋ฅ
ex) ์ ๋ ๋์ (์น ํฌํธํด๋ฆฌ์ค ์์ ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ)
Documents
Documents๋ ์น ํ์ด์ง์ ํ๋ฉด ๋ฌธ์๋ฅผ ์๋ฏธํฉ๋๋ค.
Jsoup์ ๋ํด ์์๋ณด๊ธฐ์ ์
๋จผ์ parser์ ๋ํด ์์์ผ ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ parser๋ผ๋ ๊ฐ๋ ์ ์ฒ์ ๋ฃ๋ ์ฌ๋๋ค์ด ๋ง์ ๊ฒ์ ๋๋ค. (์ ๋ ์ฒ์ ๋ค์์ต๋๋ค..)
๊ทธ๋ฌ๋ ์ด์ ๋ถํฐ parser์ ๋ํด ์์๋ด ์๋ค.
Parsing์ด๋?
์ด๋ค ํฐ ์๋ฃ์์ ์ํ๋ ์ ๋ณด๋ง ๊ฐ๊ณตํ๊ณ ๋ฝ์์ ์ํ๋ ๋์ ๋ถ๋ฌ์ฌ ์ ์๊ฒ ํ๋๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ parsing์ ์ํํ๋ ํ๋ก๊ทธ๋จ์ parser๋ผ๊ณ ํฉ๋๋ค.
Jsoup์ด๋?
์๋ฐ๋ก ๋ง๋ค์ด์ง HTML ํ์(parser)์ ๋๋ค.
jsoup์ ์๋ฐ ์ธ์ด๋ก์จ HTML์ ๋ค๋ฃจ๊ธฐ ์ฝ๊ณ , ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
jsoup์ผ๋ก ํ ์ ์๋ ์์
- URL, ํ์ผ, ๋ฌธ์์ด์ ์์ค๋ก ํ์ฌ HTML์ ํ์ฑ
- ๋ฌธ์๋ด์ HTML ์์, ์์ฑ, ํ ์คํธ๋ฅผ ์กฐ์
- ๊น๋ํ ํํ์ HTML์ ์ถ๋ ฅ
jsoup ๋ค์ด๋ก๋
์ด ๋งํฌ๋ฅผ ํตํด ์์ ์๊ฒ ๋งก๋ jsoup์ ๋ค์ด๋ก๋ ๋ฐ์์ฃผ์ธ์.
https://search.oracle.com/kr/results?q=jsoup&size=10&page=1&tab=all&app=site
jsoup ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ
1 . ์ฐ๊ฒฐํ๊ณ ์ ํ๋ ํ์ผ ์ฐํด๋ฆญ -> [Properties]
2 . Java Build Path ํด๋ฆญ
3 . Libraries -> Modulepath -> Add External JARs
4 . [ jsoup-1.18.1.jar ] - > Open
5. jsoup์ Modulepath์์ Classpath๋ก ์ด๋
6. Apply -> apply and Close ๊น์ง ํ๋ฉด ๋ ์ ๋๋ค.
์น ํฌ๋กค๋ง ์ฝ๋
public class CrwalingTask {
public static void main(String[] args) {
String url="https://www.melon.com/";
// ์น ํ์ด์ง์์ "index"๋, ํ์ง ํ์ด์ง(์ฒซ ํ์ด์ง)๋ฅผ ์๋ฏธํจ
Connection conn = Jsoup.connect(url);
// Jsoup์ผ๋ก url ์ฐ๊ฒฐ์๋
// ์ฐ๊ฒฐ๊ฐ์ฒด๊ฐ ๋ฐํ๋จ
try {
Document doc = conn.get();
Elements elems= doc.select("div.list_wrap.typeRealtime");
for(Element elem:elems) {
System.out.println(elem.text());
}
} catch (IOException e) {
System.out.println("์ฐ๊ฒฐ์ค ์๋ฌ๋ฐ์!");
}
}
}
์ด๋ฐ์์ผ๋ก ํฌ๋กค๋งํ๊ณ ํ๋ ์ฌ์ดํธ์ URL์ ์ ์ด๋๊ณ
๊ฐ๋ฐ์ ๋ชจ๋์์ ํฌ๋กค๋งํ ๋ถ๋ถ์ ํด๋ฆญํ์ฌ ๊ทธ ๋ถ๋ถ์ doc.select() ๋ถ๋ถ์ ์ ์ต๋๋ค.
์ด๋ฐ์์ผ๋ก ๊ฐ๋ฐ์๋ชจ๋๋ก ํฌ๋กค๋งํ๊ณ ์ถ์ ๋ถ๋ถ์ ํด๋ฆญํ๊ณ
ํด๋ฆญํ์๋ ๋์ค๋ ๋ถ๋ถ์ ํ๋ฆฌ๋ ๋ถ๋ถ ์์ด ๋๊ฐ์ด ์ ๋ ฅํฉ๋๋ค. (div.list_wrap.typeRealtime)
๊ทธ๋ค์ ์ถ๋ ฅ์ ํด๋ณด๋ฉด
์ด๋ฐ์์ผ๋ก ์๊น ๋ฉ๋ก ์ฐจํธ์์ ๋ณด์๋ ์์๊ฐ ๊ทธ๋๋ก ์ถ๋ ฅ์ด ๋๋๊ฑธ ๋ณด์ค ์ ์์ต๋๋ค.
๋ด์ฃผ์ ๋ถ๋ค ๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค.
'ํ์คํ ๊ฐ๋ฐ์ ์์ฑ๊ณผ์ ๐ชซ > ใ Java ใ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์๋ฐ ๊ฐ๋ ์ ๋ฆฌ 2 (2) | 2024.07.31 |
---|---|
[Java] ๋ฐฐ์ด๋ฆฌ์คํธ์ ๋งต (0) | 2024.07.16 |
[Java] MVC ํจํด์ผ๋ก ์ฝ๋ ์์ฑํ๊ธฐ (0) | 2024.07.16 |
[Java] ๋ฅ๋ ฅ ๋จ์ ํ๊ฐ (0) | 2024.07.12 |
[Java] ์๋ฐ ์ฉ์ด ์ ๋ฆฌ (0) | 2024.07.10 |