웹 사이트에 로그인하려고 시도할 때 한번쯤은 난독증을 일으키는 이미지속의 문자를 입력하라는 요청을 받았을 것입니다. 이런 짜증나는 문자나 이미지는 캡차(CAPTCHA)라고 불립니다.
이 글에서는 캡차에 대해 알아야 할 5가지 중요한 사실과 크롤링 할 때 캡차를 우회하는 방법을 알려드리겠습니다.
캡차란 무엇인가
위키피디아에 따르면 컴퓨터와 인간을 구분하기 위한 튜링 테스트(CAPTCHA)는 사용자가 인간인지 로봇인지를 구분하기 위해 컴퓨터에서 사용되는 일종의 테스트입니다. 이것은 악의적인 로봇 행동을 감지하고 로봇을 차단하여 웹사이트를 위험으로부터 보호하는 방법입니다.
특히 온라인으로 제품을 구매하거나 웹사이트에 로그인할 때 많이 볼 수 있습니다.
캡차(captcha)의 작동 방식
캡차 기술은 튜링 테스트를 기반으로 합니다. 기계가 사람처럼 생각할 수 있는지 테스트하는 데 사용됩니다. 캡차의 목표는 로봇에게 다룰 수 없는 질문이나 도전을 하는 것입니다. 일반적으로 무작위 문자나 숫자의 왜곡된 문자열을 보여줍니다. 왜곡된 사진을 보는 사람이 아무런 어려움 없이 단어를 읽을 수 있는 반면, 크롤러나 스크래퍼는 이런것을 쉽게 인식하지 못하기 때문입니다.
캡차의 유형
캡차는 여러 크기와 다양한 유형으로 제공됩니다. 캡차의 가장 일반적인 유형은 다음과 같습니다.
- 텍스트 캡차
- 이미지 캡차
- 오디오 캡차
- ReCaptcha vs. 캡차
텍스트 캡차
텍스트 캡차 테스트는 왜곡된 이미지로 나타나는 임의로 생성된 문자 또는 숫자 시퀀스와 입력창 두 부분으로 구성됩니다. 테스트를 통과하고 사람임을 증명하려면 이미지에 보이는 문자를 텍스트 상자에 입력하기만 하면 됩니다.

단순히 문자를 보여주는 것은 봇에게 그리 어렵지 않습니다. 난이도를 높이기 위해 읽기 쉬운 숫자의 기초 수학 문제가 포함된 수학 캡차(Mathematical CAPTCHA)와 문자를 3D 효과로 보여주는 3D 캡차(3D CAPTCHA)도 있습니다.


이미지 캡차(CAPTCHA)
이미지 캡차(CAPTCHA)는 일반적으로 사용자에게 왜곡된 텍스트 대신 물체, 동물, 사람 또는 풍경의 이미지를 제공하여 컴퓨터 프로그램으로부터 인간을 구별합니다. 사용자는 식별 요청을 받는 올바른 이미지를 선택하거나 블록을 드래그해야 합니다.

음성 오디오 캡차
음성오디오 캡차(CAPTCHA)는 녹음에서 임의로 추출한 단어나 숫자에 약간의 노이즈까지 조합합니다. 사용자는 녹음에서 들은 단어나 숫자를 입력해야 합니다. 사운드 캡차는 스크래핑 봇을 듣기 훈련하는 것이 쉽지 않기 때문에 문자 및 사진 캡차에 비해 다루기가 어렵습니다.

ReCaptcha vs. hCaptcha
기존의 캡차와 비교하면 구글의 리캡차가 제일 널리 사용되고 있습니다. 리캡챠의 장점은 다음과 같습니다.
- 개발자의 경우 설정 및 유지 관리가 더 쉽습니다.
- 해결 난이도가 낮은 테스트입니다.(지저분한 이미지보다 덜 짜증납니다.)
- 무료 서비스를 이용할 수 있고 구글이 관리해줍니다.

hCaptcha에 대해 들어보셨다면 hCaptcha와 reCaptcha의 차이점은 무엇인지 궁금하실 것입니다.
사실, 리캡차는 구글에 의해 제공되는 웹 사이트에 설정된 서비스이며 사용자들이 캡차를 해결할 때마다 사용자 데이터가 구글로 피드백됩니다. 구글은 이 데이터를 사용하여 서비스를 개선할 수 있습니다.
Hcaptcha는 인튜이티브 머신에서 제공하는 서비스로 사용자의 개인 정보를 보호한다고 주장합니다.
웹사이트가 캡차(CAPTCHA)를 적용하는 이유
요즘은 개인 컴퓨터와 인터넷이 보편화되고 컴퓨터화된 작업과 서비스가 보편화되어 보안 수준을 높이는 것이 더 중요했습니다. 컴퓨터용 캡차(CAPTCHA)의 개발은 예를 들어 웹사이트에 로그인하거나 인터넷에서 결제하는 등 보안에 필수적인 상황에서 개인 정보의 안전을 보장하기 위한 것입니다.
또한 캡차(CAPTCHA)는 온라인 데이터를 자동으로 수집하고 웹 사이트, 블로그 또는 포럼에 자동으로 가입하거나 사용하려는 스팸 발송자와 봇을 차단합니다. 스팸, 사기 등록 및 기타 불법 행위로 인해 웹 사이트가 과부하되지 않도록 보호합니다.
웹 스크래핑을 위한 캡차(CAPTCHA) 처리방법
캡차(CAPTCHA)는 추출 과정에서 한번 노출되면 미리 설정한 크롤러를 쉽게 분해할 수 있기 때문에 웹 스크래핑을 위해서는 이를 다루는 것이 상당히 필수적입니다. 캡차를 처리하는 가장 좋은 방법은 캡챠의 눈에 띄지 않도록 최선을 다하는 것입니다.
즉 캡차를 되도록 피면해야 합니다.
- 크롤링/스크래핑 속도를 줄여 사람처럼 보이게 할 수 있습니다.
- 프록시 서버를 사용하여 IP 추적 최소화합니다.
- 허니팟트랩을 주의합니다.
캡차를 피면할 수 없을 때에도 해결할 수 있는 방법은 있습니다.
코딩을 몰라도 무료로 간단하게 사용할 수 있는 최고의 웹 스크래핑 도구인 Octoparse를 사용하면 해결할 수 있습니다. 캡차(CAPTCHA)를 해결하는 방법은 다음과 같습니다.
1. 로컬 추출의 브라우저 모드에서 Captcha를 수동으로 해결할 수 있습니다.
- 오른쪽 상단 모서리에서 브라우저 모드를 켜고 일반 브라우저에서와 마찬가지로 캡차를 해결한 뒤 다시 브라우저 모드를 끄면 작업이 계속 진행됩니다.
2. 캡차 우회 쿠키를 저장합니다.
브라우저 모드에서 캡처를 해결한 후 현재 페이지 쿠키를 저장하여 다시 나타날 때 자동으로 해결되게 할 수 있습니다.
- 웹 페이지로 이동을 클릭합니다.
- 옵션의 설정에서 쿠키 사용을 선택합니다.
3. 로컬 추출을 위해 캡차 수동 해결
로컬 실행이 시작된 직후 캡차가 나타나면 다음 방법을 시도할 수 있습니다.
- 브라우저로 이동하여 바로 일시 중지를 클릭합니다.
- 내보내기 창에서 캡처를 수동으로 해결
- 내보내기 창의 왼쪽 상단 모서리에 있는 다시 시작 버튼을 클릭하여 실행합니다.
스크래핑 하면서 Octoparse로 캡차(captcha)를 푸는 것에 대한 질문이 있다면 링크에서 더 자세한 내용을 보실 수 있습니다.
스스로 코딩 기술로 크롤러를 개발하는 사람들을 다음과 같은 캡차 솔루션(captcha solver)을 통합하여 사용할 수 있습니다.
- 데스바이캡차: API를 통해 서비스를 연결하여 스크래핑 과정에서 캡차를 자동으로 해결하는 것을 실현할 수 있습니다.
- 바이패스캡차: 이 캡차 해결 도구는 일반 텍스트 캡차와 리캡차를 다룰 수 있습니다.
- 2CAPTCHA: 2CAPTCHA는 캡차 문제를 해결하는 유용한 도구입니다.
캡차는 웹 스크래핑 개발의 골칫거리가 될 수 있습니다. 하지만 걱정하지 마세요. 새로운 캡차에는 새로운 해결법이 있습니다. CAPTCHA는 스크래핑 툴과 CAPTCHA 솔루션의 등장으로 타파 가능성이 높아졌습니다. 이 도구를 사용하면 더이상 캡차의 방해받지 않고 웹 스크래핑을 즐길 수 있습니다.