올바른 엔드포인트 선택하기
FourA는 각기 다른 시나리오에 최적화된 4개의 request endpoint를 제공합니다. 알맞은 endpoint를 선택하면 시간을 절약하고 비용을 절감하며 성공률을 높일 수 있습니다.
빠른 선택 가이드
다음과 같은 경우 auto endpoint를 사용하세요:
- 새로운 사이트를 대상으로 하여 필요한 요구 사항을 아직 모르는 경우
- direct, proxy 순환, browser fallback을 자동으로 처리하는 단일 호출이 필요한 경우
- 동일한 호스트에 대한 다음 호출에서 저렴하게 재생 가능한 세션을 원하는 경우
다음과 같은 경우 single endpoint를 사용하세요:
- 페이지가 서버 사이드 렌더링 방식인 경우(JavaScript 불필요)
- 최대 속도가 필요한 경우(일반적으로 1초 미만)
- 정상 동작이 이미 확인된 호스트의 API 또는 정적 HTML 페이지를 호출하는 경우
다음과 같은 경우 browser endpoint를 사용하세요:
- 페이지 렌더링이 JavaScript에 의존하는 경우
- 초기 페이지 로드 이후 콘텐츠가 로드되는 경우
- 완전히 렌더링된 DOM이 필요한 경우
다음과 같은 경우 proxy endpoint를 사용하세요:
- 대상 사이트가 요청을 적극적으로 차단하는 경우
- 여러 IP 주소를 순환해야 하는 경우
- 이전 시도에서 403 오류나 인증 페이지가 반환된 경우
Endpoint 비교
Auto (POST /api/auto/)
스마트 fetch endpoint입니다. URL과 (가급적) validate 규칙을 전달하면, FourA가 비용을 고려한 단계를 거칩니다. 순환 proxy를 먼저 시도하고, 그 다음 proxy를 통한 전체 browser를 실행합니다. forceProxy: false를 설정하면 두 단계 전에 저렴한 direct 탐색과 direct browser 렌더링이 먼저 실행됩니다. validate와 일치하는 응답을 반환하는 첫 번째 단계가 적용됩니다. 동일한 호스트에 반복 호출할 경우 웜 세션이 재생되므로 두 번째 호출부터는 비용이 저렴합니다.
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://example.com/product/42",
"validate": {"data": {"accept": ["Add to cart"]}}
}'
일반적인 response time: 200ms (warm) ~ 30초 이상 (난이도 높은 사이트의 cold solve) 적합한 용도: 새로운 대상, 여러 보호 기능이 혼합된 사이트, 단순 페이지 확보 목적
자세한 안내는 Smart Fetch 가이드를 참고하세요.
Single (POST /api/single/)
가장 빠른 옵션입니다. 브라우저 프로세스를 실행하지 않고 실제 브라우저와 유사한 wire 특성을 갖춘 HTTP request를 전송합니다.
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://example.com/api/products"}'
일반적인 응답 시간: 200ms ~ 2s 적합한 대상: API, 뉴스 사이트, 블로그, 정적 제품 페이지
Browser (POST /api/browser/)
Chrome 브라우저 인스턴스에서 URL을 엽니다. 페이지가 완전히 로드되고 JavaScript가 실행된 후 최종 렌더링된 HTML을 가져옵니다.
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://example.com/spa-app",
"timeout_ms": 15000,
"checkText": "data-table"
}'
일반적인 response time: 2초 ~ 10초 권장 대상: 싱글 페이지 애플리케이션(SPA), 지연 로딩(lazy loading) 사이트, JavaScript 렌더링 콘텐츠
Proxy (POST /api/proxy/)
HTTP request와 자동 proxy 순환을 결합합니다. 첫 번째 시도가 실패하거나 차단되면 FourA가 다른 proxy를 통해 다시 시도합니다.
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,
"request": {
"method": "GET",
"url": "https://example.com/pricing"
}
}'
일반적인 응답 시간: 1s ~ 5s 적합한 용도: 전자상거래 가격 모니터링, 여행 정보 집합, 봇 탐지가 적용된 사이트
Auto vs Manual
언제 auto가 선택하도록 두고, 언제 Single, Proxy 또는 Browser를 직접 호출해야 할까요?
| Auto 선택 | Manual 선택 |
|---|---|
| 사이트에 무엇이 필요한지 아직 모를 때 | 대상 사이트에 필요한 엔진을 정확히 알고 있을 때 |
| 한 번의 호출로 안정적인 동작을 원할 때 | 알려진 대상에 맞게 요청 형태를 최적화할 때 |
| auto가 학습한 세션을 재사용해도 괜찮을 때 | 호출별 재시도, 타임아웃 및 proxy 선택을 직접 제어하고 싶을 때 |
| 첫 호출 시 몇 초간의 탐색 시간을 감수할 수 있을 때 | 탐색보다 첫 호출의 지연 시간이 더 중요할 때 |
Auto가 항상 더 저렴한 선택은 아닙니다. 대상 사이트가 Single 및 unblocker 활성화 상태에서 작동한다는 점을 이미 알고 있다면, Single을 직접 호출하여 탐색을 건너뛰고 2 크레딧만 사용할 수 있습니다. 동일한 대상에 auto를 사용하면 탐색 단계에서 소모된 만큼 비용이 청구됩니다.
접근 방식 결합 시점
여러 endpoint를 조합하여 사용하면 효과적인 워크플로가 있습니다.
- Auto로 탐색:
validate규칙을 전달하고 단계별 탐색을 통해 사이트에 필요한 방식을 확인합니다. - Single로 재생: auto가 반환한
session.proxy,session.cookies,session.userAgent값을 가져와 동일한 호스트의 후속 페이지에 Single을 호출합니다. - Browser로 대체: single이 실패하기 시작하면 browser 렌더링으로 전환합니다.
- Proxy 추가: auto 없이 요청이 거부(403 또는 인증 페이지)되는 경우, 프록시 endpoint로 요청을 래핑하여 자동 순환을 적용합니다.
이러한 점진적 접근 방식을 통해 비용을 낮게 유지하면서 높은 성공률을 확보할 수 있습니다.
성능 팁
- 보호된 대상에는
validate.data.accept부분 문자열을 전달하세요. Auto는 일반적인 챌린지 페이지를 자체적으로 인식하지만, 파악되지 않은 확인 페이지나 필요한 콘텐츠 없이 로드된 페이지는 사용자가 지정한 규칙으로만 감지할 수 있습니다. - 정상 작동이 확인된 호스트에는 기본적으로 single endpoint를 사용하고, 필요할 때만 업그레이드하세요.
- Browser 요청에
checkText를 설정하여 콘텐츠 없이 렌더링된 페이지가 성공 대신 실패(checkText:<text> not found)로 반환되도록 하세요.checkText는 FourA가 텍스트를 더 오래 기다리도록 만들지 않습니다. - Proxy 요청에서
maxTries를 설정하여 재시도 동작을 제어하세요(기본값은 5, 최대값은 90). timeout_ms값을 적절하게 유지하세요. 대부분의 페이지에는 10~15초, 보호된 사이트에 대한 초기 auto 실행에는 30초 이상을 권장합니다.
다음 단계
- Smart Fetch (Auto):
/api/auto/상세 안내 - API Endpoints: 전체 매개변수 참조
- Scrape a Dynamic Website: 브라우저 요청 단계별 가이드
- Quick Start: 30초 만에 첫 요청 보내기