본문 바로가기

개발이야기

웹 크롤러 Jsoup 사용 방법 정리

 

한국에서는 웹 크롤링, 웹 크롤러라고 많이 쓰이지만 해외에서는 Web Scraping 이란 단어로 자주 쓰입니다.
네이버 블로그 키워드 파싱 프로그램을 만들고 있는데, 네이버 API는 하루 사용제한이 있더라고요.
그래서 찾은 방법이 Jsoup을 이용한 방법이였습니다.


웹 크롤러 종류

1. TagSoup 
2. HTMLParser
3. HtmlCleaner :
4. Java Mozilla Html Parser 
5. HotSax 
6. NekoHTML
7. Jericho HTML Parser
8. JTidy 
9. Jsoup 

위와 같이 Jsoup 말고 다른 라이브러리들도 아주 많습니다
그러나 여러 가지 라이브러리를 비교했을 때 Jsoup이 속도면에서 가장 뛰어난 결과를 보여줍니다. 또한
 Jsoup의 예제가 Java, PHP 부터 다양하게 구글링 해서 찾을 수 있으므로 개발하기 조금 더 편합니다.

개발하고 프로그램을 돌리다 보니 Jsoup.select 속도가 너무 느리더라고요. 
그나마 Jsoup 속도 높이는 방법은 위와 같이 원하는 값의 class와 가장 가까운 id만 넣어주는 것입니다.
위의 예제를 보시면 a.url이 원하는 값인데 가장 가까운 id 인 ul#elThumbnailResultArea만 넣어줬습니다.

파싱 하기 원하는 위치의 태그를 쉽게 찾는 방법은 f12로 개발자 모드로 접근 후 해당 구역을 클릭하면 사진과 같은 곳에 class, id를 다 확인할 수 있습니다.