기술면접 관련 및 참고하기

크롤링(Crawling)과 스크래핑(Scraping)??

지팡구 2022. 3. 12. 21:00

컴퓨터에 관심이 있는 사람이라면 누구나 한 번쯤은 크롤링이라는 단어를 들어본 적이 있을 것이다.

직접 구현을 해본 경험을 가진 사람도 있고, 그냥 이런 기술이라는 것만 알고 있는 사람일 수도 있다.

 

나 역시 후자에 속해있었는데, 크롤링을 통해 데이터를 수집하는 것만 알고 있었고 정확한 개념을 몰랐는데, 우연히 크롤링을 해볼 기회가 생겨서 일단 크롤링이 무엇인지를 알기 위해 인터넷에서 정보를 찾기 시작했다.

 

그러던 도중에 크롤링에 대한 정보와 스크래핑에 대한 정보를 보게 되었고, 뭔가 서로 밀접하게 관련되어 있지만, 용어를 잘못 사용한다던지, 잘못 이해하고 있는 사람들이 많다고 하기에 내가 정보를 바탕으로 정리를 해보려고 한다. 

 

1. 크롤링(Crawling)이란?

나무위키에  있는 정의를 따른다면 크롤링은 크롤링 혹은 스크래핑이라고도 하는데?? 웹 페이지를 그대로 가져와 그 곳에서 데이터를 추출하는 행위를 말한다(수집과 분류를 의미). 이때 크롤링을 위한 소프트 웨어는 크롤러(Crawler)라고 한다. (데이터가 어디에 저장되어 있는지 위치에 대한 분류 작업이 크롤링의 주 목적이라고 함.) 가끔은 크롤링이라는 단어를 스파이더링이라고도 한다고 합니다.

 

- 웹상에 존재하는 콘텐츠를 수집하는 작업.

- HTML 페이지를 이용한 HTML/CSS를 파싱, 필요한 데이터만 추출

- Open API를 제공하는 서비스에서 Open API를 호출해, 받은 데이터 중 필요한 데이터만 추출하는 기법

- Seleniu등 브라우저를 프로그래밍으로 조작해 필요한 데이터만 추출하는 기법


2. 크롤링의 원리는?

크롤링의 원리를 알기 전 우리가 일상에서 사용하는 웹 페이지의 구성을 알아야 하는데, 웹 페이지는 HTML 문서와 CSS, JavaScript로 구성되어 있다. 이때 크롤러를 만들때 HTML 태그 등을 찾아서 원하는 데이터를 추출할 수 있는데, 예시로 웹 페이지에서 음식 목록을 크롤링 하려고 한다면 '음식'이라고 검색된 페이지의 HTML 문서를 확인하면 해당 사용 태그를 알 수 있고, 원하는 데이터를 추출하기 위해 HTML 문서를 확인하는 작업을 통해 소프트웨어의 힘을 빌려 데이터를 추출할 수 있도록 크롤러를 만들면 된다.

 

참고:Google 검색의 원리 | 크롤링 및 색인 생성

 

Google 검색의 원리 | 크롤링 및 색인 생성

수없이 많은 인터넷 웹페이지에서 정보를 수집하고 구성하기 위해 Google에서 어떤 소프트웨어를 사용하는지 알아보세요.

www.google.com


3. 크롤링의 종류

- 정적 크롤링 ( 정적인 데이터를 수집하는 방법으로, 변하지 않는 데이터를 의미한다. 속도는 빠르지만 수집 데이터에 대한 한계가 존재한다.)

- 동적 크롤링 (동적인 데이터를 수집하는 방법으로, 입력, 클릭, 로그인 등과 같은 페이지 이동이 있어야 보이는 데이터를 의미한다. 다양한 데이터를 수집이 가능하지만 당연히 속도는 느리다.)

 


4. 문제점

데이터의 가치가 점점 늘어나고 기업들은 데이터를 통한 다양한 산업을 진행중이다. 이에 따라 이 크롤링이라는 행위가 법적으로 문제가 될 수 있다는 점을 알아야 한다. 특정한 웹 사이트의 콘텐츠를 무단으로 사용해 금전적인 이득을 얻으려는 것은 데이터 베이스 침해 행위라는  대법원의 판결이 난 적이 있다. (이것 이외에도 다양한 판례들이 많음.)

法 “여기어때, 야놀자 정보 무단수집 맞다”...前 대표 ‘유죄’ - ZDNet korea

 

法 “여기어때, 야놀자 정보 무단수집 맞다”...前 대표 ‘유죄’

경쟁사인 야놀자의 제휴 숙박업소 목록 등을 영업 목적으로 수집한 혐의로 여기어때 창업자인 심명섭 전 대표에게 유죄가 선고됐다.또 같은 혐의로 재판에 넘겨진 직원들도 유죄와 ...

zdnet.co.kr

https://biz.chosun.com/site/data/html_dir/2020/09/23/2020092300325.html

 

데이터 수집부터 겁나는 기업들… “불법인지 합법인지 모르겠다”

데이터 수집부터 겁나는 기업들 불법인지 합법인지 모르겠다

biz.chosun.com

 

5. 내 생각을 정리하며 이번 포스팅의 총 정리

결국 특정한 웹 사이트에 있는 정보를 함부로 긁어다가 상업적으로 이용하면 법적으로 문제가 생길 수 있다는 점을 인지해야하며, 

결국 크롤링을 사용함에 있어 내가 원하는 데이터를 탐색하고, 조건에 따라 데이터를 수집, 저장하기 위한 모든 일련의 자동화를 크롤링이라 말하며, 크롤링을 하는 것은 불법이 아니지만 데이터를 사용해 상업적으로 이용하는 경우나, 상대의 서버에 문제를 일으킨 경우 등 여러 부분에 있어서 문제를 일으키게 될 경우 법적으로 책임을 져야할 수 있다. 

 

크롤링과 스크래핑은 비슷한 의미를 가지는 것 같지만, 실제론 명확히 구분되어야 한다고 한다.

원칙적으로 크롤링은 탐색에 그 기능이 제한되 의미를 갖고 있지만, 스크래핑은 정보의 추출에 초점을 맞추고 있기 때문이다. 어떻게 보면 내가 생각하기엔 스크래핑이 큰 틀이라 생각하고, 크롤링이 조금 더 작은 범주이지 않나 싶다. 그 이유는 크롤링이 우선적으로 기반이 되어야 스크래핑이 될 것이기 때문이다.  (물론 둘 개념이 매우 비슷해서 같이 쓰는 경우도 비일비재하다고 함...)

 

크롤링은 여러 사이트를 돌아다니며 필요한 데이터를 수집하며, 스크래퍼는 특정 사이트에서 고정된 형상에서 데이터를 가지고 오는 것. 

 

다양한 라이브러리와 툴이 있으니 관심이 있다면 한 번 알아보는 것도 좋을 것 같다.

 

<참고>

이렇게 하면 불법인지 아닌지, 사이트가 허락하는지 허락하지 않는지 알 수 있다고 함

 

사이트의 이름 뒤에 robots.txt를 통해 파일을 열어보면 확인이 가능함. 

https://namu.wiki/w/robots.txt

 

robots.txt - 나무위키

반드시 폴더명 맨 끝에 /를 붙여야 한다. 붙이지 않으면 확장자가 없는 파일로 인식하기 때문에 제대로 작동하지 않는다. 특정 디렉토리의 접근을 허가하려면 User-agent: 제어할 로봇의 User-AgentAllo

namu.wiki

https://developers.google.com/search/docs/advanced/robots/robots_txt?hl=ko 

 

Google에서 robots.txt 사양을 해석하는 방법  |  문서  |  Google Developers

다양한 robots.txt 파일 규칙과 Google이 robots.txt 사양을 해석하는 방법을 자세히 알아보세요.

developers.google.com