[Daily Contents] 데이터 크롤링의 세계


데이터 크롤링

누군가가 인터넷에 올린 정보를 수집해 사용하는 기술
-> 불법적인 행위로 이어질 수 있음.

Q1. 인터넷상에서 자동으로 데이터를 수집하는 방법에는 어떤 것들이 있나요?

1) OpenAPI 등 공개된 API 를 사용

공공데이터포털, NaverDevelopers, Mydata 허브 등

2) HTTP Get Method

- 정보가 게시되어 있는 대상 웹사이트를 HTTP GET을 사용하여 HTML 코드를 얻고 Text Parsing해서 사용
- 거의 대부분의 언어로 구현 가능
- 동적으로 변하는 웹페이지에는 활용이 어려움

3) Selenium Web Driver

- 본디 테스트를 위해 개발되었으나 데이터 수집용으로 활용 중
- 웹 브라우저 인스턴스를 생성해 실행시킨 후 해당 인스턴스를 컨트롤
- 웹사이트 테스트 자동화 목적으로 개발
- 가상의 브라우저를 실행시키는 Headless Mode 등이 있음
- HTTP GET 방식에 비해 느리고 불안정적이나 보다 많은 웹사이트를 스크래핑 가능
- 사람이 하는 것과 유사한 자동화 방법

4) 사람이 수작업으로 데이터를 수집하는 방법(ㄴㅇㄱ)

Q2. 웹 크롤러와 웹 스크랩퍼는 같은 의미인가요?

웹 크롤러 vs 웹 스크래퍼

** 웹 크롤러(Web Crawler) **

조직적, 자동화된 방법으로 웹을 탐색/수집하는 프로그램
ex) 구글, 네이버 등의 검색엔진 결과 데이터를 수집하기 위한 봇(Bot)

** 웹 스크래퍼(Web Scrapper) **

웹사이트에서 정보를 추출하는 프로그램
ex) 상품별 가격을 알기 위해 해당 상품을 파는 페이지들의 가격을 추출
  • 크롤러보다는 대부분 단순 스크래퍼 개발 수요가 많음.
  • 우리나라에서는 많은 기업들이 같은 의미로 혼용.

Q3. 웹 크롤링은 불법이 아닌가요?

크롤링은 불법인가?

불법에 노출되기 쉬운 기술 중 하나라 주의
웹사이트의 홈디렉토리에 위치한 robots.txt 파일을 열어보고 해당 사이트의 정책을 준수하지 않는다면 불법

크롤링할 웹사이트의 URL의 /robots.txt로 접속하면 크롤링해도 되는 파일, 안 되는 파일을 Disallow와 Allow로 구분해서 명시해 놓음.

크롤링한 자료를 상업적인 용도로 사용하면 불법

국내에서는 불법, 해외(미국)에서는 합법 판결이 난 전례가 있음

원작자의 수익을 해치지 않았다면 합법
비상업적인 용도라 하더라도 원작자에게 불이익을 주면 불법
** 크롤러를 활용해 고의적으로 Abusing -

Q&A

Q. 이전 기수에서 크롤링으로 문제가 된 사례가 있었는지?
A. 보통 상담을 받고 진행하기 때문에 미연에 방지된다.
Q. 셀레니움을 사용할 때 렌더링되기 전에 실행되는 경우가 많아 대량의 사이트 데이터를 수집할 때 오류가 발생. 줄일 수 있을지.
A. 한 페이지가 다 출력될 때까지 기다리게 하는 커맨드가 있다. 딜레이를 줘서 기다리게 하는 건 아마추어적인 방식. 레퍼런스에서 메서드 알아보기.
Q. 가장 크롤링을 잘 활용한 프로젝트는?
A. 토스.
Q. 데이터가 많이 필요한 경우 수많은 URL을 찾아봐야 할 수도 있는데 방대한 데이터가 필요한 경우 수십만 번 HTTP 요청을 보내서 크롤링을 하는지?
A. 한 사이트에 한 번 요청하면 데이터는 크롤링 완료. 수십만 번 같은 사이트에 요청하면 소송감.
Q. API 요청을 너무 많이 해서 차단된 케이스가 있다고 하는데 어느 정도 해야 그런 제한이 걸릴지.
A. 사이트의 운영정책에 따라 별개.

댓글남기기