웹 크롤링
크롤링(crawling) 혹은 스크레이핑(scraping)은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위입니다. 크롤링하는 소프트웨어는 크롤러(crawler)라고 부릅니다.
스크래핑
넓은 의미로는 웹 페이지의 정보를 수집하는 일련의 행위를 가리킵니다. 따라서 크롤링은 스크래핑의 한 종류로 분류할 수 있습니다. 좁은 의미로는 특정한 웹 페이지에서 원하는 데이터 일부를 가져오는 것을 일컫습니다.
크롤링
크롤링은 구글, 네이버와같은 검색 포털에서 수행되며, 웹페이지의 정보를 수집하고 분류해서 데이터 베이스화합니다. 데이터를 수집하는 소프트웨어를 크롤러(crawler) 혹은 봇(bot)이라고 부릅니다. 봇은 개인이 작성한 블로그, 뉴스 기사 등의 페이지를 모두 방문해서 문서가 어디에 있는지, 누가 작성했는지, 어떠한 내용이 들어 있는지를 수집하는겁니다. 수집된 데이터를 검색 포털이 데이터 베이스로 만들어 놓기 때문에 사람들이 검색하면 그 결과를 데이터 베이스에서 찾아 빠르게 보여줄 수 있습니다.
파싱
파싱은 구문 분석이라고 합니다. 문장이 이루고 있는 구성 성분을 분해하고 분해된 성분의 위계 관계를 분석하여 구조를 결정하는 것입니다. 즉 데이터를 분해 분석하여 원하는 형태로 조립하고 다시 빼내는 프로그램을 말합니다. 웹상에서 주어진 정보를 내가 원하는 형태로 가공하여 서버에서 불러들이는 것입니다.
관련 소프트웨어
beautifulsoup
HTML과 XML 문서들의 구문을 분석하기 위한 Python 패키지입니다. HTML로부터 데이터를 추출하기 위해 사용할 수 있는 파싱된 페이지의 파스 트리를 만드는데, 이는 웹 스크래핑에 유용합니다.
selenium
프로그램을 이용해 자동화된 웹 테스트를 수행할 수 있도록 해주는 프레임워크입니다. 현재는 Java, C#, Rudy, Python등 많은 언어를 지원합니다. 현재는 아파치 라이선스하에 오픈소스로 자유로이 이용할 수 있습니다. 웹 테스트의 목적뿐만 아니라 다양한 목적으로 쓰이고 있습니다. 그중 하나가 기존 크롤러는 웹 페이지를 단순히 받아와 분석하는데 그쳤다면 selenium을 이용한 크롤러는 자동으로 로그인을 수행할 수도 있고 설문조사에 참여할 수 있게 하기도 하는 등 웹에서의 모든 작업을 대신 맡길 수 있습니다.
jsoup
HTML작업을 위한 Java 라이브러리입니다. HTML5 DOM 메서드와 CSS 선택자를 사용하여 URL을 가져오고 데이터를 추출 및 조작하기 위한 매우 편리한 API를 제공합니다.