합법적인 자동화와 테스트를 위해 캡차를 우회하는 방법
캡차를 합법적으로 우회한다는 것은 사이트의 규칙을 어기거나 사이트 사용자를 공격하지 않으면서, 내 자동화 작업이 챌린지를 통과하게 하는 것을 뜻합니다. 실제로는 네 가지 경우를 포함합니다. 내가 소유한 워크플로 자동화, 내 사이트 테스트, 접근성 도구 개발, 그리고 책임감 있는 속도로 하는 공개 데이터 수집입니다. 가장 빠르고 정직한 방법은 보통 캡차를 아예 유발하지 않는 것입니다. 피할 수 없을 때는 Scarnox 같은 솔버 API가 페이지가 기대하는 토큰을 돌려줄 수 있습니다.
이 가이드는 시도해야 할 방법을 권장 순서대로 정리하고, 넘지 말아야 할 경계를 표시합니다.
먼저 캡차가 왜 나타났는지 확인하세요
캡차는 신호입니다. 사이트가 요청이 자동화되었거나 위험하다고 판단한 것입니다. 챌린지를 통과하려고 하기 전에, 무엇이 원인인지 확인하세요.
- 요청 빈도. 많은 캡차는 한 주소에서 요청이 폭주한 뒤에야 나타납니다.
- 세션 상태 누락. 쿠키, 이력, 로그인 없이 도착한 방문자는 스크래퍼처럼 보입니다.
- 브라우저 신호. 헤드리스 브라우저와 기본 자동화 설정은 자주 표시됩니다. 헤드리스 브라우저 감지 가이드에서 흔한 신호를 설명합니다.
- 네트워크 평판. 데이터센터 주소는 가정용 인터넷 연결보다 더 자세히 검사됩니다.
원인을 고치면 캡차가 아예 사라지는 경우가 많습니다. 모든 요청마다 캡차를 푸는 것보다 이 방법이 낫습니다.
챌린지를 피하는 방법부터 시도하세요
- 공식 API가 있다면 사용하세요. 많은 사이트가 자체 키와 제한을 두고 API로 데이터를 공개합니다. 그 경로가 더 빠르고, 더 안정적이며, 분명히 허용된 방법입니다.
- 속도를 낮추고 요청을 분산하세요. 요청 사이에 지연을 두고, 동시 실행 수를 제한하고, 경고를 받으면 백오프하세요. 분당 몇 건의 일정한 속도는, 수백 건이 한꺼번에 몰리는 것과 사이트 입장에서 전혀 다르게 보입니다.
- 세션을 유지하세요. 페이지마다 새로 시작하지 말고, 한 세션 동안 쿠키와 일관된 브라우저 프로필을 재사용하세요. 브라우저 핑거프린팅 가이드에서 이것이 왜 중요한지 다룹니다.
- 시작 전에 robots.txt와 이용 약관을 확인하세요. 차단된 뒤가 아니라 처음부터 확인하고, 사이트가 요구하는 것을 존중하세요.
테스트 키와 테스트 환경을 사용하세요
캡차가 내 스테이징 환경을 막고 있다면, 테스트를 프로덕션으로 돌려서 우회하지 마세요. Google과 Cloudflare를 포함한 대부분의 캡차 공급자는 개발용 테스트 키를 공개합니다. 이 키들은 실제 챌린지 없이 유효한 토큰을 만들며, 자동화 테스트에 맞는 올바른 도구입니다. 또는 팀에 요청해 스테이징 서버에서 캡차를 끌 수도 있습니다. 자동화 테스트의 캡차 가이드에서 이 설정을 단계별로 설명합니다.
합법적인 작업을 가로막는 캡차는 API로 풀기
좋은 속도 조절을 해도 합법적인 작업에 캡차가 나타나는 경우가 있습니다. 예를 들어 내가 쓰는 공급업체의 포털을 확인하는 모니터링 작업이 그렇습니다. 이때는 솔버 API가 적절한 도구입니다.
Scarnox는 캡차 풀이 API입니다. 지금 운영 중인 작업 유형은 PopularCaptcha(프록시 없음)뿐입니다. 코드는 sitekey와 페이지 URL을 보내고, 폼과 함께 제출할 토큰을 받습니다.
import requests
r = requests.post(
"https://api.scarnox.com/api/tasks/create",
headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/login",
},
timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None
토큰은 약 2분 뒤에 만료되므로 받자마자 제출하세요. 전체 예제는 Python으로 캡차 풀기 가이드에 있습니다. reCAPTCHA, Cloudflare Turnstile, Arkose를 포함한 다른 캡차 유형은 준비 중입니다. 출시되기 전까지는 솔버가 이를 처리한다고 가정하지 마세요.
접근성도 합법적인 이유입니다
캡차는 스크린 리더를 사용하거나, 기기를 바꿔 쓰거나, 인지 또는 시각에 어려움이 있는 사람들에게 장벽입니다. 접근성 도구를 만들고 있거나 챌린지를 완료하지 못하는 사용자를 대리하는 경우, 올바른 첫 단계는 사이트 운영자에게 접근 가능한 대안을 요청하는 것입니다. 많은 사이트가 그런 대안을 제공합니다. 캡차를 자동화하는 것은 그 대화를 대신할 수 없습니다.
합법적이지 않은 것
이유가 무엇이든, 캡차 풀이 중 일부 용도는 허용되지 않습니다. 다음 목적으로는 솔버나 어떤 우회 수단도 사용하지 마세요.
- 자격 증명 무차별 대입(credential stuffing), 또는 내 것이 아닌 계정에 로그인하려는 모든 시도.
- 스팸 가입, 가짜 리뷰, 가짜 계정.
- 다른 고객보다 먼저 티켓, 재고, 한정 상품을 사는 것.
- 다른 사람의 서비스에 있는 로그인 폼, 비밀번호 재설정 흐름, 요청 제한을 공격하는 것.
이런 용도는 실제 사람에게 해를 끼치고, 사이트 약관을 위반하며, 심각한 법적 위험을 초래합니다. Scarnox는 이를 지원하지 않으며, 이 가이드도 이런 내용은 다루지 않습니다.
스크래핑은 책임감 있게
우회가 공개 데이터 수집을 위한 것이라면, 다음 사항을 기억하세요.
- robots.txt와 사이트 약관을 확인하세요. 스크래핑을 금지하는 사이트는 원하는 바를 이미 알려 준 것입니다.
- 합리적인 요청 제한을 설정하고, 오류가 나면 백오프하세요. 작은 사이트에 과부하를 주는 것은 실제 피해입니다.
- 필요하지 않은 개인 데이터는 수집하지 마세요. 개인 데이터는 GDPR 같은 법의 적용을 받으며, 부주의하게 수집하면 책임이 생깁니다. 웹 스크래핑은 합법인가 가이드에서 주요 고려 사항을 설명합니다.
요약
먼저 원인을 고쳐서 캡차를 피하세요. 테스트에는 테스트 키를 사용하세요. 합법적인 작업이 여전히 챌린지에 걸린다면, 현재 운영 중인 작업 유형 안에서 솔버 API를 사용하세요. 위에 나열된 용도에는 손대지 말고, 사이트가 감당할 수 있는 속도로 스크래핑하세요.