크롤링(crawling)과 스크레이핑(scraping)

인터넷에는 HTML로 작성된 문서 뿐만아니라 이미지, 영상, 음성 등의 데이터가 많이 존재한다. 이런 데이터를 기계적으로 수집하는 것이 크롤러이다.

크롤러(crawler)가 인터넷상의 콘텐츠를 순회하고 콘텐츠하고 정보를 수집하는 것을 "크롤(Crawl)" 또는 "크롤링(Crawling)" 이라고 한다.

대표적으로 검색 서비스를 예로 들 수 있다. 구글은 크롤러를 통해 웹 상의 수 많은 데이터를 크롤링해서 저장하여 검색 서비스를 제공한다. 이게 대한 자세한 원리나 내용은 참고자료에 링크를 걸어 두었다.

크롤링(crawling)

"HTML 내부에 있는 a tag의 href 속성을 추출하고 해당 URL에 접근하는 것"의 반복

크롤러는 HTML 내부 링크를 따라 웹 페이지를 순회한다. 물론 이렇게만 구현하면 같은 페이지만 반복적으로 수집할 수 있기 때문에 몇 가지 조건을 더 주어야 한다.

  • 한번 접근한 URL을 기록해 두 번 접근하지 않게 만들어야 한다.

  • 특정 패턴과 일치하는 URL만 순회하게 한다.

  • 시작 페이지부터 접근해 들어가는 페이지의 깊이에 제한을 둔다.

크롤러를 만들 때 지켜야할 규칙도 있다.

  • 크롤링 대상 서버에 심한 부하 걸지 말기 -> 동시에 여러 요청 보내지 말기, 요청 간격 최소 1초 이상 설정하기

  • 크롤링으로 추출한 콘텐츠의 저작권 지키기

  • 크롤링 거부 의사를 밝힌 웹 사이트와 웹 페이지는 크롤링하지 않기 -> robots.txt확인 및 User-Agent

    헤더에 거부의사를 전달 할 수 있도록, 크롤러의 목적, 크롤링한 정보의 사용 용도, 연락 수단 등을 적어 놓는다

하지만 이런 규칙은 강제할 수 없기 때문에 안지켜진 크롤러 또한 많이 존재한다.

스크레이핑(scraping)

수집한 콘텐츠에서 필요한 정보를 추출/가공하는 것을 스크레이핑이라고 한다.

Last updated