보호 대상 사이트
최신 웹사이트는 고도화된 봇 탐지 기술을 사용합니다. 이 가이드는 요청 주체를 확인하는 사이트에서 FourA가 페이지를 가져오는 방법과 성공률을 높이는 방법을 설명합니다.
봇 탐지 작동 방식
웹사이트는 여러 단계의 보호 계층을 사용합니다.
- IP 평판: 데이터 센터 및 알려진 proxy 주소가 차단됩니다.
- 네트워크 지문(Wire fingerprinting): 각 HTTP 클라이언트는 사이트에서 감지할 수 있는 고유한 핸드셰이크 서명을 가집니다.
- 브라우저 지문(Browser fingerprinting): JavaScript가 headless 브라우저 지표를 감지합니다.
- 동작 분석: 요청 패턴, 타이밍 및 탐색 흐름을 분석합니다.
- 인증 페이지: 방문자가 완료해야 하는 시각적 과제입니다.
응답에는 검사를 실행한 시스템의 이름이 지정됩니다. 해당 목록은 사이트 검사에 정리되어 있습니다.
가장 빠른 방법: Auto
보호 수준을 아직 알 수 없다면 실제 페이지만 포함하는 validate.data.accept 하위 문자열을 지정하여 /api/auto/를 호출하십시오. Auto 모드는 비용을 고려한 단계별 탐색(로테이션 proxy 적용, 이후 proxy 기반 브라우저 실행. forceProxy: false 설정 시 저렴한 직접 탐색과 직접 브라우저 렌더링이 먼저 실행됨)을 거치며 설정한 규칙에 부합하는 응답이 반환되는 첫 번째 단계에서 중단합니다. 동일한 호스트에 반복 호출할 경우 웜 세션이 재사용되므로 두 번째 호출부터는 비용이 저렴해집니다.
curl -X POST https://eu.api.foura.ai/api/auto/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://protected-site.com/product/42",
"validate": {"data": {"accept": ["Add to cart"]}}
}'
Auto는 일반적인 챌린지 페이지를 인식하고 이를 마주했을 때 계속 진행합니다. 설정한 validate.data.accept 문자열은 인식되지 않는 확인 페이지, 로그인 장벽, 또는 필요한 콘텐츠가 없는 페이지 등 나머지를 감지합니다. 전체 가이드는 Smart Fetch 가이드를 참고하십시오.
각 레이어에서 FourA가 지원하는 방식
실제와 유사한 Wire 레벨의 Request
단일 endpoint(POST /api/single/)는 실제 브라우저와 일치하는 핸드셰이크 특성을 생성합니다. 사이트는 브라우저를 직접 실행하는 오버헤드 없이 실제 브라우저와 동일하게 응답합니다.
unblocker를 활성화하여 실제 브라우저 header(User-Agent, Sec-Ch-Ua, Sec-Fetch-*, Accept-Encoding)도 함께 주입하십시오. unblocker은 기본적으로 켜져 있으며, 일반 클라이언트 서명만 전송하려는 경우에만 false로 설정하십시오.
{
"method": "GET",
"url": "https://protected-site.com/data",
"unblocker": true
}
실제 브라우저 렌더링
브라우저 엔드포인트(POST /api/browser/)는 전체 Chrome 브라우저 인스턴스를 실행합니다. 방문자의 브라우저와 동일한 방식으로 페이지의 JavaScript를 실행합니다. Browser의 unblocker는 페이지가 로드되기 전에 요구하는 검사(Turnstile 및 유사한 게이트)를 완료합니다. 챌린지 페이지를 원본 그대로 다시 받으려는 것이 아니라면 켜 두십시오.
Proxy 순환
Proxy 엔드포인트(POST /api/proxy/)는 주거용 및 데이터 센터 Proxy를 자동으로 순환합니다. 하나의 IP가 차단되면 다음 시도에서는 다른 IP를 사용합니다. 후속 호출에서 ignoreProxies를 사용하여 이미 소진된 출구를 건너뛰십시오. maxTries(기본값 5, 최대 90)를 사용하여 시도 강도를 제어하십시오.
국가별 출구 지정
/api/proxy/에서 exitCountries을 전달하여 타겟에 표시되는 국가가 엄격한 허용 목록과 일치하는 Proxy로 선택을 제한하십시오. 값은 공백이 제거되고 대문자로 변환되며 중복이 제거된 두 자리 코드(["CZ", "GB"])입니다. FourA는 요청되지 않은 국가로 절대 대체하지 않습니다. 현재 풀에 일치하는 항목이 없으면 요구 사항을 완화하지 않고 나중에 다시 시도할 수 있도록 details.exitCountries에 정규화된 범위가 포함된 code: "no_eligible_proxy" 응답을 반환합니다. 국가별 지정은 Startup 플랜 이상부터 포함됩니다. 해당 기능이 없는 플랜에서 exitCountries을 전송하는 호출은 403 및 X-FourA-Limit: plan_limit_feature과 함께 거부됩니다.
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 5,
"exitCountries": ["CZ", "GB"],
"request": {"method": "GET", "url": "https://target.example/pricing"}
}'
범위 지정이 요청된 경우 응답에 exitCountry이 포함됩니다. 페이로드를 신뢰하기 전에 allowlist에 속해 있는지 확인한 다음, 반환된 proxy ID를 후속 Browser 호출에서 재사용하여 동일한 출구를 통해 JavaScript 렌더링이 수행되도록 하십시오.
FourA가 차단 원인을 알려줍니다
어떤 시스템이 요청을 차단했는지 추측할 필요가 없습니다. 대상이 봇 검사를 실행하면 응답에 해당 시스템 이름이 명시됩니다.
POST /api/single/및POST /api/proxy/는defense객체를 반환합니다.defense.vendor은 시스템 이름이고,defense.solved은 검사 통과 여부를 나타내며,defense.present은 해당 응답에서 인식된 모든 항목을 나열합니다.POST /api/browser/는defenseSolved과 함께defenses.present및defenses.cleared를 반환합니다.
{
"status": 200,
"data": "<!doctype html>...",
"defense": {
"vendor": "sgcaptcha",
"solved": true,
"present": ["sgcaptcha"],
"cookie": "_I_=<clearance>"
}
}
이에 따른 두 가지 규칙은 다음과 같습니다.
solved: false는 body가 페이지가 아닌 챌린지일 수 있음을 의미합니다. FourA는 챌린지 페이지를 콘텐츠로 제공하지 않으므로 파싱하기 전에 플래그를 확인하십시오.- 해결 시 통과 권한이 제공됩니다.
defense.cookie가 있으면 동일한 User-Agent 및 동일한 exit에서Cookie헤더로 다시 전송하십시오. 후속 request는 확인 절차를 완전히 건너뜁니다.
FourA는 eBay, Reddit, Amazon, Google Search의 자체 확인 시스템을 포함하여 일반적인 확인 시스템을 인식합니다. 인식 범위는 통과 범위보다 넓습니다. 이름을 식별할 수 있지만 통과할 수 없는 시스템은 보고되며 request 비용을 절대 인상하지 않습니다. 반환된 페이지가 해당 시스템의 확인 페이지인 경우 HTTP 200 상태 코드라도 request 비용이 청구되지 않으며 X-FourA-Check-Page 헤더에 해당 시스템 이름이 지정됩니다. 모든 필드, 현재 통과 대 감지 구분 및 재생 예시는 Site checks를 참조하십시오.
Strategy by Protection Level
Unknown Protection
auto를 사용하십시오. 저비용으로 먼저 프로빙하고 대상이 강제하는 수준까지만 에스컬레이션하므로 호스트당 검색 비용이 한 번만 청구됩니다.
Low Protection (most sites)
unblocker가 포함된 단일 endpoint를 사용하십시오. 회선 수준의 일치만으로 충분합니다.
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method": "GET", "url": "https://news-site.com/article", "unblocker": true}'
보통: 챌린지 페이지 또는 기본 방화벽
브라우저 endpoint를 사용하여 JavaScript 챌린지를 통과합니다:
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://protected-site.com/data", "timeout_ms": 15000}'
높음: 동작 및 지문 검사
여러 번의 재시도 시도와 함께 proxy endpoint를 사용하십시오:
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 10,
"request": {
"method": "GET",
"url": "https://heavily-protected.com/prices",
"unblocker": true
}
}'
챌린지가 해제된 후 렌더링된 페이지가 필요한 연쇄적 챌린지 페이지("Just a moment", 보안 체크포인트)의 경우 MCP Recipes를 참고하십시오. "Protected page: proxy first, browser when JavaScript is needed" 레시피에서 프록시 후 브라우저 전환에 대한 정확한 인계 과정을 확인할 수 있습니다.
모범 사례
알 수 없는 대상에는 auto로 시작하십시오.
validate규칙을 전달하여 사다리형 구조에서 가장 비용이 적게 드는 단계를 선택하도록 한 다음, 응답의meta.rung항목을 확인하여 어떤 엔진이 작동했는지 파악하십시오. 확인 후에는 반복 트래픽에 해당 엔진을 직접 호출하십시오.성공한 세션을 재사용하십시오. auto 호출 후 반환된
session(프록시 ID + cookies + userAgent)는 동일한 호스트의 후속 페이지 요청을 위해/api/single/또는/api/browser/를 통해 재사용할 수 있습니다. 이때 해당 엔드포인트의 기본 요금이 적용됩니다(unblocker사용 시 Single은 2 크레딧, Browser는 5 크레딧, 대화형 페이지는 10 크레딧).rate limit를 준수하십시오. 프록시 회전을 사용하더라도 단일 사이트에 초당 수백 개의 요청을 보내면 행동 감지 시스템이 트리거됩니다. 요청 간격을 최소 1~2초 이상 유지하십시오.
unblocker설정을 활성화된 상태로 유지하십시오. Single 및 Proxy에서unblocker: true(기본값)는 실제 브라우저 서명과 헤더를 전송합니다. Browser에서는 챌린지 해결 프로그램을 활성화합니다. 일반 클라이언트 서명이나 가공되지 않은 챌린지 페이지가 특별히 필요한 경우에만 이 기능을 끄십시오.성공률을 모니터링하십시오. Dashboard 지표를 확인하여 시간 경과에 따른 성공률을 추적하십시오. 성공률이 급격히 떨어지면 일반적으로 대상 사이트의 보호 조치가 업데이트되었음을 의미합니다.
차단된 출구 노드를 건너뛰십시오.
/api/proxy/또는/api/auto/호출에서 반환된 프록시 ID에서 오류가 발생하기 시작하면 다음 호출 시ignoreProxies에 전달하여 FourA가 다른 출구를 선택하도록 하십시오.재시도하기 전에
defense를 확인하십시오. 벤더 이름을 확인하면 다른 브라우저 프로필을 시도해 볼 가치가 있는지, 전체 렌더링이 필요한지, 또는 해결 서비스 없이는 통과할 수 없는 검사인지 판단할 수 있습니다.제시하는 브라우저를 변경하십시오. 일부 대상은 특정 브라우저는 허용하고 다른 브라우저는 거부합니다. Single 및 Proxy에서
browser,os또는version를 설정하고 현재 카탈로그는GET /api/profiles를 확인하십시오. 자세한 내용은 엔드포인트 레퍼런스에 나와 있습니다.
제한 사항
일부 시나리오에서는 API 외부의 추가 처리가 필요합니다.
- 로그인 보호 콘텐츠: FourA는 장기 세션 로그인을 대신 관리하지 않습니다. 브라우저 endpoint는 요청별
cookies를 허용하므로 세션 cookie를 직접 전달해야 합니다. - 대화형 인증 작업: FourA는 시각적 인증을 감지하여
defense.present에 보고하지만 이를 직접 완료하지는 않습니다. Turnstile은 Browser에서 처리됩니다. - 특정 국가로 제한된 콘텐츠:
/api/proxy/에서exitCountries를 사용하여 허용된 국가로 선택을 고정하십시오. ISP 또는 ASN별로 추가 제한하는 사이트(일부 국가 공인 베팅 사이트, 특정 정부 서비스 등)는 일반 residential 출구를 여전히 차단할 수 있으며, 현재 풀에 일치하는 출구가 없으면 요청이no_eligible_proxy를 반환합니다. - 법적 제한이 있는 사이트: 데이터 수집이 대상 사이트의 서비스 약관 및 관련 법률을 준수하는지 항상 확인하십시오.
Next Steps
- Smart Fetch (Auto):
/api/auto/심층 분석 - Choosing the Right Endpoint: endpoint 선택 가이드
- Common Issues: 403 오류 및 인증 페이지 해결 방법
- API Endpoints:
exitCountries를 포함한 전체 파라미터 레퍼런스 - Site checks:
defense필드, 시스템 목록 및 clearance 재생 - MCP Recipes: 프록시 우선 적용 후 브라우저 전환 체인을 포함한 워크플로 템플릿