보통 웹에서 데이터를 긁어오는 것을 웹크롤러라고 하는데,
기술상에서 영문표현은 확실히 구분을 하고 있습니다.
사실 웹상에서 데이터를 긁어오는 것은 Web Scraper에 더 가깝습니다.
Web Scraper는 데이터 마이닝도구로서, 웹페이지를 찾아다니면서 특정한 데이터를 페이지로부터 '추출'하는 것을 지칭합니다.
한편 Web Crawler는 웹에 있는 링크 정보나 URL을 찾아내는 것입니다.
즉 찾아내는 대상이 링크 또는 URL인지 아니면 특정 데이터를 추출하는 것인지에 따라 구분되는 것 같습니다.
웹 크롤러는 첫(root)페이지에서 시작하여 하이퍼링크나 URL들을 찾은 후에, 리스트로 저장해 다음에 방문할 목록 대상으로 저장합니다. 첫 페이지 이후에 과정을 반복합니다. 특정한 조건이 없으면 무한반복(indefinitely)하게 되겠죠.
사용 사례를 보면, 국외는 조금 특이한 사례도 있습니다.
제품정보 추출(Fetch product data) : 경쟁사 웹페이지에서 가격 정보 등을 가져옵니다. 관련된 도구로는 Octoparse 와 Puppeteer 가 있습니다.
WebCrawler 중 crawler4j를 'A Guide to Crawler4j'의 웹페이지(https://www.baeldung.com/crawler4j)를 참조하여 구현해보니, 최종 출력은
으로, URL 값과 해당 URL의 제목, 내용(text 또는 html 형태)과 해당 페이지에 존재하는 links의 수의 정보입니다.
내용에 대해 섬세하게 접근하여 가공처리하는 용도로 사용하기에는 조금 부족한 도구입니다.
참조로 해당 도구의 github( https://github.com/yasserg/crawler4j )는 2020년 10월 4일 이후에 중단된 것으로 보이며, 라이선스도 Apache 2.0 license입니다.
WebScraper 로는 'jsoup'이 적합해 보입니다. MIT license이고, 여전히 개발 중이어서 업데이트되고 있습니다.(https://github.com/jhy/jsoup/)