캡차(CAPTCHA)를 우회해서 안전하게 웹 데이터 수집하기

캡차가 무엇인가요?

캡차(Completely Automated Public Turing Test to Tell Computers and Humans Apart, CAPTCHA)는 복잡한 패턴을 이용해 컴퓨터와 인간을 구분하기 위해 설계된 프로그램입니다. 텍스트, 시각, 음성 퀴즈 등을 기반으로 자동화된 컴퓨터 프로그램과 인간을 구별하기 위해 사용되는 질의-응답 테스트라고 볼 수 있습니다. 가장 흔히 사용되는 캡차는 다음과 같은 카테고리에 속합니다.

  1. 텍스트: 가장 많이 사용되는 캡차 유형 중 하나입니다. 단어 문제로 구성되어 문장에서 빠진 단어를 입력하도록 요구합니다. 단어 문제 캡차는 문제를 해결하는 데 있어 논리적 이해가 필요하기 때문에 강력한 캡차 시스템으로 사용됩니다.
  2. 이미지: 이미지 기반 캡차는 이상한 그림 찾기, 이미지 인식 등과 같이 다양한 종류의 이미지 테스트로 구성됩니다. 일반적으로 이미지 인식과 이미지의 의미를 파악해야하기 때문에 봇이 해석하기 어렵습니다.
  3. 음성: 음성 기반 테스트는 기본적으로 이미지와 텍스트 기반 캡차 문제를 모두 포함하며, 시각적으로 장애가 있는 사용자를 위해 설계되기도 합니다.
  4. 시간: 시간 제한 테스트는 사용자가 테스트를 완료하는 데 걸리는 시간을 기록합니다. 시간 내에 사용자가 테스트를 완료하지 못할 경우, 사용자를 사람이 아니라고 판단해 웹 사이트 접속을 제한합니다. 보통 사람은 필요한 정보를 입력하는 데에 일정 시간이 걸리는 반면, 봇은 테스트를 짧은 시간 내에 완료하는 편입니다.
  5. 수학 문제: 간단한 수학 문제에 대한 정답을 입력해야 하는 테스트입니다. 다른 유형의 캡차에 비해 봇에게는 복잡하지 않은 테스트이기 때문에 웹 사이트의 보안을 보장하기 어렵다는 한계가 있습니다.

컴퓨터 프로그램으로부터 스팸, 해킹 등을 방지하기 위해 구글에서 개발한 리캡차(reCAPTCHA)도 같은 맥락으로 이해할 수 있습니다. 이와 같이 자동화된 봇의 데이터 수집을 방지하는 기술들로 인해 웹 크롤링을 하는 데에 시간과 비용이 많이 소요되기도 합니다.

웹 데이터 수집 시, 캡차 해결방법

  • 캡차를 해결해주는 유료 서비스 이용하기. 캡차는 사람이 쉽게 인식할 수 있는 테스트를 통해 사람과 자동화된 봇을 구별하는 프로그램입니다. 이러한 캡차를 실시간으로 해결하기 위해 수천 명의 직원을 고용해 직접 캡차를 해결해주는 유료 서비스도 있습니다. 효과적으로 캡차 문제를 해결할 수는 있지만, 비용과 시간 지연 문제가 발생할 수 있습니다.
  • 광학 문자 인식(OCR)를 이용해 해결하기. OCR은 광학 문자 인식(Optical Character Recognition) 또는 광학 문자 판독기(Optical Character Reader)의 약자로, 필기 또는 인쇄된 텍스트를 자동으로 기계가 식별하고 인코딩하는 기술입니다. 일부 이미지/텍스트 기반 캡차 문제는 OCR 알고리즘을 이용해 쉽게 해결할 수도 있습니다.
  • 직접 해결하기. 웹 크롤링 시 캡차를 해결해야 하는 일이 많지 않다면, 직접 수동으로 캡차를 우회할 수도 있습니다. 이 경우 데이터를 수집하고자 하는 웹 사이트에 접속해 캡차를 해결한 후, 평소대로 웹 크롤러를 사용해 데이터를 수집할 수 있습니다.

리스틀리는 다양한 문서를 통해 웹 크롤링에 관한 정보를 제공하고 있지만, 여러분이 진행하고 계시는 프로젝트의 세부사항을 모두 알 수는 없습니다. 전문적인 법률 조언이 필요한 경우, 웹 크롤링 작업을 진행하는 국가 혹은 지역에서 전문 변호사와 먼저 상의하시기를 권장합니다.