도움을 주고 싶으신가요? 다음은 옵션입니다:","크런치베이스","회사 소개","놀라운 성원을 보내주신 모든 분들께 감사드립니다!","빠른 링크","제휴 프로그램","ProxyScrape 프리미엄 평가판","프록시 유형","프록시 국가","프록시 사용 사례","중요","쿠키 정책","면책 조항","개인정보 보호정책","이용 약관","소셜 미디어","Facebook","LinkedIn","트위터","Quora","텔레그램","불화"," © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | 벨기에 | VAT BE 0749 716 760"]}
대규모 웹사이트에서 데이터를 스크래핑할 때, 자신이 사람임을 증명하기 위해 보안 문자를 입력할 필요는 거의 없습니다. 웹 스크래퍼를 사용해 본 사람이라면 사이버 보안 전문가들이 왜 캡차 기술을 개발할 수밖에 없었는지 이미 알고 있을 것입니다. 봇이 웹사이트에 액세스하기 위해 끝없이 요청을 자동화했기 때문입니다. 따라서 진짜 사용자조차도 다양한 형태로 나타나는 캡챠를 마주하는 수고를 겪어야 했습니다. 하지만 웹 스크래퍼를 사용하든 사용하지 않든 캡차를 우회할 수 있으며, 이것이 이 글의 목적입니다. 하지만 먼저 캡차란 무엇인지 알아보겠습니다.
CAPTCHA는 컴퓨터와 사람을 구분하기 위한 완전 자동화된 공개 튜링 테스트의 약자입니다. 꽤 긴 약어죠? 이제 이 약어의 마지막 부분인 튜링 테스트가 무엇을 의미하는지 궁금하실 텐데요, 사람 또는 봇이 웹 페이지 또는 웹 서버와 상호 작용하는지 여부를 판단하는 간단한 테스트입니다.
결국 캡차는 인간과 봇을 구분하여 사이버 보안 분석가가 무차별 대입 공격, DDoS, 경우에 따라 웹 스크래핑으로부터 웹 서버를 보호하는 데 도움이 됩니다.
캡챠가 인간과 봇을 어떻게 구분하는지 알아보세요.
문의, 등록, 댓글, 가입 또는 결제 양식 등 웹사이트의 여러 양식에서 캡차를 찾을 수 있습니다.
기존 캡차에는 배경색 또는 투명한 배경의 상자 안에 글자, 숫자 또는 둘 다 늘어나거나 흐릿하게 표시된 이미지가 포함됩니다. 그런 다음 문자를 식별하고 그 뒤에 나오는 텍스트 필드에 입력해야 합니다. 이 문자를 식별하는 과정은 사람에게는 쉽지만 봇에게는 다소 복잡합니다.
반면에 일부 고급 봇은 수년에 걸친 머신 러닝의 도움으로 왜곡된 문자를 가로챌 수 있습니다. 그 결과 Google과 같은 일부 회사는 기존 보안 문자를 정교한 보안 문자로 대체했습니다. 다음 섹션에서 소개할 리캡챠가 그 예 중 하나입니다.
리캡챠는 Google에서 제공하는 무료 서비스입니다. 사용자에게 텍스트를 입력하거나 퍼즐 또는 수학 방정식을 푸는 대신 상자에 체크 표시를 하도록 요청합니다.
일반적인 리캡챠는 기존 형태의 캡챠보다 더 발전된 형태입니다. 거리의 신호등, 오래된 신문의 텍스트, 인쇄된 책과 같은 실제 이미지와 텍스트를 사용합니다. 따라서 사용자는 흐릿하고 왜곡된 텍스트가 있는 구식 캡챠에 의존할 필요가 없습니다.
인간인지 아닌지를 확인하기 위한 리캡차 테스트에는 크게 세 가지 유형이 있습니다:
위 이미지와 같이 사용자에게 "나는 로봇이 아닙니다"라는 확인란을 선택하도록 요청하는 리캡챠입니다. 육안으로 보기에는 봇도 이 테스트를 완료할 수 있는 것처럼 보이지만 몇 가지 요소가 고려됩니다:
리캡챠가 본인임을 확인하지 못하면 또 다른 도전 과제를 제시합니다.
이러한 리캡차는 위 이미지에서 볼 수 있듯이 사용자에게 9개 또는 16개의 정사각형 이미지를 제공합니다. 각 사각형은 큰 이미지의 일부 또는 다른 이미지를 나타냅니다. 사용자는 특정 사물, 동물, 나무, 차량 또는 신호등을 나타내는 사각형을 선택해야 합니다.
사용자의 선택 항목이 동일한 테스트를 수행한 다른 사용자의 선택 항목과 일치하면 해당 사용자가 인증된 것입니다. 그렇지 않으면 ReCAPTCHA는 더 까다로운 테스트를 제시합니다.
확인란이나 사용자 상호작용을 사용하지 않고도 리캡챠가 사람인지 아닌지를 확인할 수 있다는 사실을 알고 계셨나요?
사용자의 웹사이트 상호 작용 기록과 온라인 상태에서 사용자의 일반적인 행동을 고려하여 봇인지 여부를 판단합니다. 대부분의 시나리오에서 시스템은 이러한 요소에 따라 사용자가 봇인지 여부를 판단할 수 있습니다.
그렇게 하지 않으면 앞서 언급한 두 가지 방법 중 하나로 되돌아갑니다.
웹 사이트에서 봇 동작과 유사한 비정상적인 활동이 감지되면 캡차가 트리거될 수 있으며, 이러한 비정상적인 행동에는 몇 초 내에 무제한 요청, 사람보다 훨씬 빠른 속도로 링크 클릭 등이 포함됩니다.
그러면 일부 웹사이트는 시스템을 보호하기 위해 자동으로 캡차를 적용합니다.
리캡챠에 관한 한, 무엇이 리캡챠를 유발하는지는 정확히 밝혀지지 않았습니다. 하지만 일반적인 원인으로는 마우스 움직임, 검색 기록, 쿠키 추적이 있습니다.
이제 캡차 및 리캡차의 정의, 작동 방식, 트리거 요인에 대해 명확하게 살펴보았습니다. 이제 캡차가 웹 스크래핑에 어떤 영향을 미치는지 살펴볼 차례입니다.
자동화된 봇이 대부분의 스크래핑 작업을 수행하기 때문에 캡차는 웹 스크래핑을 방해할 수 있습니다. 하지만 낙담하지 마세요. 이 글의 서두에서 언급했듯이 웹 스크래핑 시 캡차를 극복할 수 있는 방법이 있습니다. 그 방법을 알아보기 전에 스크래핑하기 전에 주의해야 할 사항에 대해 자세히 알아보겠습니다.
웹사이트에 연결하면 연결 웹사이트에 디바이스에 대한 정보가 전송됩니다. 웹사이트는 이 정보를 사용하여 내 디바이스의 사양과 지표 추적에 맞게 콘텐츠를 맞춤 설정할 수 있습니다. 따라서 동일한 기기에서 보낸 요청임을 알게 되면 이후에 보내는 모든 요청이 차단됩니다.
주의해야 할 또 다른 사실은 대상 웹사이트가 내 IP 주소를 블랙리스트에 올리지 않았다는 것입니다. 스크레이퍼/크롤러로 너무 많은 요청을 보내면 IP 주소를 블랙리스트에 올릴 가능성이 높습니다.
풀을 사용하여 HTTP 헤더와 프록시(자세한 내용은 다음 섹션에서 자세히 설명)를 순환하면 여러 디바이스에서 서로 다른 위치에서 웹사이트에 액세스할 수 있습니다. 따라서 캡챠로 인한 중단 없이 스크래핑을 계속할 수 있어야 합니다. 단, 어떤 방법으로도 웹사이트의 성능을 저하시키지 않아야 합니다.
위의 주요 요소 외에도 봇으로 웹 스크래핑을 할 때 아래의 캡챠를 알아야 합니다:
사용자 에이전트 문자열 목록을 확보한 다음 로테이션해야 하므로 단순히 사용자 에이전트를 변경하는 것만으로는 충분하지 않습니다. 이러한 로테이션은 실제로는 하나의 디바이스가 모든 요청을 전송하고 있지만 타겟 웹사이트에서는 사용자를 다른 디바이스로 인식하게 됩니다.
이 단계의 모범 사례로 실제 사용자 에이전트의 데이터베이스를 보관하는 것이 좋습니다. 또한 쿠키가 더 이상 필요하지 않은 경우 쿠키를 삭제하세요.
기술 수준이 낮은 보다 간단한 방법은 캡차 해결 서비스를 이용하는 것입니다. 이러한 서비스는 인공 지능(AI), 머신 러닝(MI) 및 기타 기술의 정수를 사용하여 CAPTCHA를 해결합니다.
스크래퍼가 매 순간 URL에 직접 액세스하도록 허용하면 수신 웹사이트는 이를 의심하게 됩니다. 결과적으로 대상 웹사이트는 보안 문자를 트리거하게 됩니다.
이러한 시나리오를 방지하려면 참조 헤더를 설정하여 다른 페이지에서 참조된 것처럼 보이도록 할 수 있습니다. 이렇게 하면 봇으로 탐지될 가능성이 줄어듭니다. 또는 봇이 원하는 링크를 방문하기 전에 다른 페이지를 방문하도록 할 수도 있습니다.
허니팟은 보안 전문가가 봇이나 침입자를 가두는 데 사용하는 웹페이지의 숨겨진 요소입니다. 브라우저는 HTML을 렌더링하지만 CSS 속성은 숨기도록 설정되어 있습니다. 하지만 사람과 달리 봇은 데이터를 스크랩할 때 허니팟 코드를 볼 수 있습니다. 결과적으로 허니팟이 설정한 함정에 빠진 것입니다.
따라서 스크래핑을 시작하기 전에 웹 페이지에 있는 모든 요소의 CSS 속성이 숨겨져 있거나 보이지 않는지 확인해야 합니다. 숨겨진 요소가 없다고 확신하는 경우에만 스크래핑을 위해 봇을 설정합니다.
이 글을 통해 웹 스크래핑 시 캡차를 피하는 방법에 대한 포괄적인 아이디어를 얻으셨을 것입니다. 캡차를 피하는 것은 복잡한 과정일 수 있습니다. 하지만 이 글에서 설명한 특정 기술을 사용하면 캡차를 피하는 방식으로 봇을 개발할 수 있습니다.
이 글에서 설명한 모든 기술을 활용하길 바란다.