티스토리 뷰


Nokogiri는 ruby에서 크롤링을 해주는 라이브러리입니다. 간단하게 사이트에 있는 데이터를 긁어오도록 하겠습니다.


사이트 : http://www.nokogiri.org/ 


* 'gem install nokogiri' 명령을 통해 설치합니다.



* 네이버의 html 구조를 분석한 결과 2가지의 경로에서 실시간 검색어를 가져올 수가 있습니다.


[ 첫 번째 HTML 구조 ]  - 클릭 후 보는 것을 추천드립니다.


[ 두 번째 HTML 구조 ]



1. 아래와 같이 실시간 검색어의 경로( #realrank li a )에서 title의 문자열을 @titles의 배열에 차곡차곡 넣습니다.


[ controller ]


1-2. for문을 이용해 controller에서 가져온 @titles를 깔끔하게 보여줄 수 있도록 조작합니다.


[ view ]


1-3.  아래와 같이 1 - 10위의 네이버 실시간 검색어를 볼 수가 있습니다.



2. controller에서 아래와 같이 작성을 합니다.

우선 require 'nokogiri' 와 require 'open-uri'를 선언하고, 크롤링을 할 네이버 주소를 가져와서 xpath를 이용해 네이버 사이트에 실시간 검색어가 있는 위치의 태그를 가져와 inner_text를 이용해 텍스트만 뿌려주게 됩니다.


[ controller ]


2-1. 2번의 소스대로 view에 @titles를 뿌려주게 되면 아래와 같이 네이버 실시간 검색어가 출력됩니다. 


 


* 결과

첫 번째 방법과 두 번째 방법의 결과는 동일하지만, 첫 번째 방법이 더 좋은 것 같습니다. 이유는 두 번째 방법은 noscript 경로에서 바로 가져와 배열을 이용해 값을 컨트롤할 수 없는 반면에, 첫 번째 방법은 배열을 이용해 인덱스로 접근해서 필요한 값만을 컨트롤 할 수가 있습니다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함