데이터 스크래핑이란 무엇입니까?

공격자들은 웹 스크래핑 도구를 이용해 원래 의도된 것보다 훨씬 빠르게 데이터에 액세스할 수 있습니다. 이로 인해 데이터가 무단으로 사용될 수 있습니다.

Share facebook icon linkedin icon twitter icon email icon

데이터 스크래핑

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 데이터 스크래핑 정의하기
  • 웹 스크래핑 배후의 목적 설명하기
  • 데이터 스크래핑 완화 방법 이해하기
  • 데이터 스크래핑과 데이터 크롤링 구별하기

데이터 스크래핑이란 무엇입니까?

가장 일반적인 형태의 데이터 스크래핑은 컴퓨터 프로그램이 다른 프로그램에서 생성된결과물로부터 데이터를 추출하는 기법을 말합니다. 데이터 스크래핑은, 애플리케이션을 이용해 웹사이트에서 중요한 정보를 추출하는 과정을 말하는 웹 스크래핑에서 나타나는 경우가 많습니다.

데이터 스크래핑

웹 사이트 데이터를 스크래핑하는 이유는 무엇입니까?

대부분의 회사들은 회사 고유의 콘텐츠를 무단으로 다운로드하여 재사용하는 것을 원하지 않습니다. 따라서, 소모성 API 또는 쉽게 액세스할 수 있는 자원을 통해 모든 데이터를 공개하지는 않습니다. 반면에, 스크래퍼 은 액세스를 제한하려는 노력에도 불구하고 웹사이트 데이터를 얻고자 합니다. 그 결과, 웹 스크래핑 봇과 다양한 콘텐츠 보호 전략 사이에는 쥐와 고양이 같은 게임이 존재하며, 서로 이 게임에서 이기려 합니다.

웹 스크래핑의 실제 구현은 복잡할 수 있지만, 절차는 매우 간단한 3단계로 이루어집니다.

  1. 먼저, 스크래퍼 봇이라고 하는, 정보를 빼내오는 데 사용되는 코드가 특정 웹 사이트에 HTTP GET 요청을 보냅니다.
  2. 웹사이트가 응답하면 스크래퍼는 HTML 문서를 분석해서 특정 패턴의 데이터를 찾습니다.
  3. 추출된 데이터는 스크래퍼 봇의 작성자가 설계한 특정 형식으로 변환됩니다.

스크래퍼 봇은 다음과 같은 다양한 목적을 위해 만들 수있습니다.

  1. 콘텐츠 스크래핑 - 콘텐츠에 의존하는 특정 제품 또는 서비스의 고유한 이점을 복제하기 위해 웹사이트에서 콘텐츠를 추출할 수 있습니다. 예를 들어, Yelp와 같은 제품은 리뷰에 의존합니다. 경쟁업체가 Yelp의 모든 리뷰 콘텐츠를 스크래핑해 자신의 사이트에서 재생하고 오리지널 리뷰인 것처럼 가장하는 경우가 있을 수 있습니다.
  2. 가격 스크래핑 - 경쟁업체가 가격 데이터를 스크래핑해서 경쟁에 대한 정보를 취합하는 경우입니다. 이를 통해 자신들의 경쟁 우위를 만들 수 있습니다.
  3. 연락처 스크래핑 - 이메일 주소와 전화 번호를 일반 텍스트로 갖고 있는 웹사이트가 많습니다. 온라인 직원 디렉토리 같은 위치를 스크래핑하면, 연락처 정보를 집계해 대량 메일 목록, 로보 콜, 악의적인 소셜 엔지니어링 등에 이용할 수 있습니다. 스팸과 스캠을 하는 사람들이 대상을 찾는 데 사용하는 기본 방법 중 하나입니다.

웹 스크래핑 완화 방법

일반적으로 웹사이트 방문자가 볼 수 있는 모든 콘텐츠는 방문자의 컴퓨터로 전송되어야 하며, 방문자가 액세스할 수 있는 모든 정보는 봇이 스크래핑할 수 있습니다.

웹 스크래핑은 줄일 수 있습니다.데이터 스크래핑을 줄이기 위한 방법에는 세 가지 방법은 다음과 같습니다.

  1. 요청 속도 제한 - 하나의 웹사이트에서 일련의 웹 페이지를 클릭하는 인간 방문자의 경우, 웹사이트와의 상호 작용 속도는 상당히 예측 가능합니다. 예를 들어, 사람이 초당 100개의 웹페이지를 탐색하지는 않을 것입니다. 이에 비해, 컴퓨터는 사람보다 요청을 훨씬 빠르게 처리할 수 있으며, 초보 데이터 스크래퍼는 조절되지 않은 스크래핑 기법을 사용하여 전체 웹사이트를 매우 빠르게 스크래핑하기도 합니다. 웹사이트는 특정 IP 주소가 정해진 시간 동안 낼 수 있는 최대 요청 수를 제한함으로써, 폭발적인 요청으로부터 스스로 보호하고 특정 시간 동안 발생할 수 있는 데이터 스크래핑 양을 제한할 수 있습니다.
  2. 주기적인 HTML 마크업 수정 - 데이터 스크래핑 봇은 웹사이트 콘텐츠를 효과적으로 탐색하고 유용한 데이터를 분석하고 저장하기 위해 일관된 형식을 사용합니다. 이 흐름을 방해하는 한 가지 방법은 HTML 마크업 요소를 정기적으로 변경하여 일관된 스크래핑이 더 복잡해지도록 하는 것입니다. HTML 요소를 중첩하거나, 마크업의 다른 측면을 변경함으로써, 간단한 데이터 스크래핑 노력을 방해하거나 저지할 수 있습니다. 웹페이지가 렌더링될 때마다 무작위의 콘텐츠 보호 수정을 구현하는 웹사이트도 있습니다. 웹사이트에 따라, 장기적인 데이터 스크래핑 노력을 막기 위해 수시로 마크업 코드를 변경하기도 합니다.
  3. 대량 요청자에게 CAPTCHA 적용 - 속도 제한 솔루션을 사용하는 것 외에 콘텐츠 스크래핑 속도를 늦누는 방법으로, 컴퓨터는 풀기 어려운 추가 인증 질문을 웹사이트 방문자에게 제시하는 방법이 있습니다. 인간은 이 질문에 합리적으로 답할 수 있지만, 데이터 스크래핑에 쓰이는 헤드리스 브라우저*는 대부분 이에 답하지 못하며, 다양한 질문을 통과할 수는 없습니다. 하지만, CAPTCHA 질문을 지속적으로 내보내면, 사용자 경험에 부정적인 영향을 줄 수 있습니다.

이외에도 많이 쓰이지는 않지만, 이미지 같은 미디어 개체 내부에 콘텐츠를 넣는 완화 방법도 이용됩니다. 컨텐츠가 일련의 문자열 내에 존재하지 않기 때문에, 컨텐츠를 복사하는 것이 훨씬 더 복잡하며, 이미지 파일에서 데이터를 가져 오기 위해서는 광학 문자 인식(OCR)이 필요합니다. 그러나, 이는 주소나 전화번호 같은 콘텐츠를 기억하거나 메모하는 대신 복사해야 하는 웹 사용자도 방해할 수 있습니다.

*헤드리스 브라우저는 Chrome 또는 Firefox 등과 매우 유사한 웹 브라우저이지만, 기본적으로 시각적 사용자 인터페이스가 없어 일반적인 웹 브라우저보다 훨씬 빠르게 이동할 수 있습니다. 기본적으로 명령줄 수준에서 실행하므로, 전체 웹 애플리케이션 렌더링을 피하는 것이 가능합니다. 데이터 스크래퍼는 스크래핑되는 페이지를 보는 사람이 없으므로, 헤드리스 브라우저를 사용하여 데이터를 빠르게 요청하는 봇을 작성합니다.

웹 스크래핑의 완전한 차단 방법

웹 스크래핑을 완전히 막는 방법은 웹사이트에 아무런 콘텐츠도 넣지 않는 방법밖에 없습니다. 그러나, 고급 봇 관리 솔루션을 사용하면, 스크래퍼 봇의 액세스를 거의 완벽하게 차단할 수 있습니다.

데이터 스크래핑과 데이터 크롤링의 차이점은 무엇입니까?

크롤링은 Google 같은 대규모 검색 엔진이 GoogleBot과 같은 로봇 크롤러를 인터넷에 보내 인터넷 콘텐츠를 색인화하는 과정을 의미합니다. 이에 비해, 스크래핑은 일반적으로 특정 웹 사이트에서 데이터를 추출하도록 특별히 구성됩니다.

다음은 스크래퍼 봇이 웹 크롤러 봇과 다르게 동작하는 세 가지 방식입니다.

  1. 크롤러는 자신의 목적을 표시하며, 웹사이트가 자신을 다른 것으로 생각하도록 속이려 하지 않는데 비해, 스크래퍼 봇은 웹 브라우저인 것처럼 가장합니다.
  2. 스크래퍼 봇은 양식 작성 같은 고급 작업을 하거나 웹사이트의 특정 부분에 도달하기 위한 행동을 수행하는 경우가 있습니다. 크롤러는 그렇게 하지 않습니다.
  3. 스크래퍼는, 웹 크롤러에게 어떤 데이터를 분석하고 사이트의 어떤 영역은 피하라고 말하기 위해 특별히 설계된 정보가 담긴 텍스트 파일인 robots.txt 파일을 무시하는 것이 일반적입니다. 스크래퍼는 특정 콘텐츠를 가져오도록 설계되었으므로, 무시하도록 명시된 콘텐츠를 가져오도록 설계되는 경우가 있습니다.

Cloudflare Bot Management는 기계 학습 및 행태 분석을 통해 스크래퍼 같은 악의적인 봇을 식별하여 고유의 콘텐츠를 보호하고 봇이 웹 자산을 악용하지 못하도록 합니다.