관리 메뉴

웹개발자의 기지개

Jsoup 으로 웹페이지 소스 파싱2 (네이버/다음 실시간 검색어 추출) 본문

Java

Jsoup 으로 웹페이지 소스 파싱2 (네이버/다음 실시간 검색어 추출)

http://portfolio.wonpaper.net 2019. 7. 21. 22:14

우선은 Jsoup 라이브러리 소스를 추가한다.

 

Jsoup 으로 웹페이지 소스 파싱1 포스팅 기사 참고 

https://wonpaper.tistory.com/106?category=811920

 

Jsoup 으로 웹페이지 소스 파싱1 (최근 로또 당첨번호 확인)

특정 웹사이트의 전체 소스내용들을 특정 부분만 추출하여 파싱하고자 할때, Jsoup 라이브러리 소스가 있었다. 소스를 일단 다운 받자. https://jsoup.org/download Download and install jsoup Download and inst..

wonpaper.tistory.com

네이버 홈페이지로 가서 소스보기로 소스를 열자.

 

[ NaverSearch.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
public class NaverSearch {
    
    public NaverSearch() {
        getDate();
    }
    
    public void getDate() {
        try {
            Document doc = Jsoup.connect("https://www.naver.com").get();
            Elements contents ;    
            contents = doc.select("ul[data-list='1to10'] li.ah_item a[data-clk='lve.keyword']");
            System.out.println("네이버 실시간 검색어 순위");
            
            System.out.println("총개수 : " + contents.size());            
            for(Element e : contents) {
                String url = e.attr("href");
                String num = e.select("span.ah_r").text();
                String name = e.select("span.ah_k").text();
                
                System.out.println(num + " 위 : " + name + "\n" + url);
            }
        } catch (IOException e) {
            e.printStackTrace();            
        }
    }
}
cs

위의 소스중에 핵심은 17 라인이다.

ul 태그 data-list 속성과 그 하위 a태그 data-clk 속성을 추출하여 땡겨온다.

 

그다음엔 다음 사이트로 가자. 소스보기 한다.

[ DaumSearch.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.io.IOException;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
public class DaumSearch {
    
    public DaumSearch() {
        getData();
    }
    
    public void getData() {
        
        try {
            Document doc = Jsoup.connect("https://www.daum.net").get();
            Elements contents ;    
            contents = doc.select("ol[class='list_hotissue issue_row list_mini'] div.rank_cont");
            System.out.println("다음 실시간 검색어 순위");
            
            System.out.println("총개수 : " + contents.size());            
            for(Element e : contents) {
 
                String url = e.select("a.link_issue").attr("href");
                String num = e.select("span.ir_wa").text();
                String name = e.select("a.link_issue").text();
                
                System.out.println(num + " : " + name + "\n" + url);
            }
        } catch (IOException e) {
            e.printStackTrace();            
        }        
    }
}
 
cs

마찬가지로 핵심은 19라인이다.

그리고, 25, 26, 27 라인에서 각각의 태그 부분을 뽑아낸다.

 

 

 

 

Comments