웹크롤러
웹크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다.[1]
목차
개요
웹크롤러는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다.웹 크롤러가 하는 작업을 웹 크롤링 혹은 스파이더링이라 부른다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹 크롤링한다. 웹 크롤러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는 데 사용되며, 검색 엔진은 이렇게 생성된 페이지를 보다 빠른 검색을 위해 인덱싱한다. 또한 크롤러는 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해 사용되기도 하며, 자동 이메일 수집과 같은 웹 페이지의 특정 형태의 정보를 수집하는 데도 사용된다. 웹크롤러는 봇이나 소프트웨어 에이전트의 한 형태이다. 웹크롤러는 대개 시드(seeds)라고 불리는 URL 리스트에서부터 시작하는데, 페이지의 모든 하이퍼 링크를 인식하여 URL 리스트를 갱신한다. 갱신된 URL 리스트는 재귀적으로 다시 방문한다. 웹크롤러는 웹 스파이더, 앤트, 오토매틱 인덱서[2], 웹 스커터로도 부를 수 있다. 그 외에 봇(bots), 웜(worms), 웹 로봇(web robot) 등으로도 부른다.[1]
예시
- 빙봇
- FAST Crawler
- 구글봇
- GM Crawl
- PolyBot
- RBSE
- Swiftbot
- WebFountain
- WebRACE
- 월드 와이드 웹 웜
- Yahoo! Slurp[1]
오픈 소스 크롤러
- Frontera
- GNU Wget
- GRUB
- Heritrix
- HTTrack
- mnoGoSearch
- news-please
- 아파치 너치
- 오픈 서치 서버
- PHP-Crawler
- Scrapy
- Seeks
- 스핑크스
- 스톰크롤러
- tkWWW Robot
- Xapian
- YaCy
- Octoparse[1]
크롤링
크롤링(crawling) 또는 스크레이핑(scraping) 은 웹 페이지를 가져와서 데이터를 추출해 내는 방법을 말한다. 이렇게 크롤링하는 소프트웨어를 크롤러(crawler) 라고 한다.세상에는 많은 양, 다양항 데이터가 존재한다. 그렇기 때문에 크롤링도 다양한 분야에서 활용할 수 있다. 어떠한 기업에서는 크롤링 담당 분서가 따로 존재한다고 한다. 예를들면 마케팅과 관련하여 개선점을 파악하고 싶을때 웹상에 존재하는 상품들의 후기, 평점등을 크롤링하여 문제점을 파악하고 개선점을 찾을 수 있다.[2]
크롤링 종류
정적 크롤링
정적 크롤링은 정적인 데이터를 수집하는 방법을 말한다. 정적인 데이터란 변하지 않는 데이터를 의미합니다. 즉 한 페이지 안에서 원하는 정보가 모두 드러날때 정적 데이터라고 할 수 있다. 예를 들면, 로또 로또 번호 7개를 크롤링 하고 싶다고 한다면 보이는 화면에서 그 값이 모두 나타나 있다. 그렇기 때문에 한 페이지 안에 원하는 정보가 모두 드러난 경우 인 정적 크롤링에 해당된다. 정적 크롤링은 한 페이지 내에서 모든 작업이 이루어지기 때문에 속도가 매우 빠르다는 장점을 가진다.[2]
동적 크롤링
동적 크롤링은 동적인 데이터를 수집하는 방법을 말한다. 동적인 데이터란 입력, 클릭, 로그인 등과 같이 페이지 이동이 있어야 보이는 데이터를 말한다. 정적크롤링 수집하는 속도가 느리다는 단점이 있지만 더 많은 정보를 수집할 수 있다는 장점이 있다. 예를 들어, 메일함에 있는 메일 제목데이터를 수집하고 싶다고 생각을 해봤을때, 그렇기 위해서는 로그인과정을 거친 후 메일함에 들어가야 하는 동적인 과정이 필요하다. 이러한 경우가 바로 동적 크롤링이다.[2]
동적 크롤링과 정적 크롤링 차이점
- 연속성
- 정적 크롤링은 주소를 통해 단발적으로 접근하지만, 동적 크롤링은 브라우저를 사용하여 연속적으로 접근한다.
- 수집 능력
- 정적 크롤링은 수집 데이터의 한계가 존재하지만, 동적 크롤링은 수집 데이터의 한계가 없다.
- 속도
- 정적 크롤링의 속도는 빠르며, 동적 크롤링은 속도가 느리다.
- 라이브러리
- 정적 크롤링은 requests, BeautifulSoup을 사용하며, 동적 크롤링은 selenium, chromedriver를 사용한다.[2]
각주
참고자료
- 〈웹 크롤러〉, 《위키백과》
- Jaaaa_mj, 〈크롤링 종류(정적 VS 동적)〉, 《티스토리》, 2021-01-17