실제로 작업을 해결한 프록시 사용하기
proxyCandidates를 전송할 때는 solution.egressAttempts를 사용하여 작업 해결에 성공한 프록시를 찾으세요. 이 값은 원래 후보 목록에서 1부터 시작하는 인덱스입니다. 대상에 솔루션을 제출할 때는 목록의 다른 프록시가 아닌 해당 프록시를 사용하세요.
이 페이지의 내용
원래 후보 목록 유지
proxy와 proxyCandidates 중 정확히 하나만 제공하세요. 후보 목록에는 경로, 쿼리, 프래그먼트가 없는 서로 다른 HTTP 또는 HTTPS 프록시 URL을 최대 12개까지 넣을 수 있습니다. 성공한 프록시를 선택할 때까지 원래 요청과 후보 순서를 유지하세요. 나중에 목록을 정렬하거나 필터링하면 인덱스가 가리키는 항목이 달라집니다.
후보를 제공하면 solvethree가 다른 송신 경로를 시도할 수 있지만, 프록시나 대상이 작동한다는 보장은 없습니다. 세션 작업에는 후보 목록이 아닌 단일 proxy가 필요합니다.
프록시 선택 전 인덱스 검증
reCAPTCHA, Kasada, TMPT에서는 solution.egressAttempts가 성공한 후보를 나타냅니다. 1부터 원래 배열 길이까지의 정수인 경우에만 유효한 값으로 처리하세요. JavaScript 배열이나 Python 리스트의 인덱스로 사용할 때는 1을 빼세요.
| 원래 위치 | 후보 | 선택 여부 |
|---|---|---|
| 1 | PROXY_A | 아니요 |
| 2 | PROXY_B | 예 |
| 3 | PROXY_C | 아니요 |
여기서 성공한 프록시는 배열 오프셋 1에 있는 두 번째 프록시 PROXY_B입니다. 인덱스가 없거나 소수, 0 또는 목록 범위를 벗어난 값이면 중단하세요. 첫 번째 프록시로 대체하거나 목록 순서로 성공한 프록시를 추정하지 마세요.
SDK 도우미 사용 후 선택한 프록시 재사용
원래 작업과 준비된 결과를 JavaScript의 successfulProxy 또는 Python의 successful_proxy에 전달하세요. 예제에서는 solve를 호출하여 작업을 생성하고, 준비되거나 오류가 발생할 때까지 폴링한 다음 도우미가 프록시를 반환하지 않으면 중단합니다.
서버에서 SOLVETHREE_API_KEY와 프록시 환경 변수 3개를 설정하세요. 각 프록시 변수에는 서로 다른 유효한 프록시 URL이 들어 있어야 합니다. 예제의 사이트와 액션을 의도한 대상과 액션으로 바꾸세요. 예제에는 Node.js 22+ 또는 Python 3.10+가 필요합니다.
import { Solvethree, successfulProxy } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
site: 'accounts.example.com', action: 'login',
proxyCandidates: [process.env.PROXY_A, process.env.PROXY_B, process.env.PROXY_C],
};
const result = await client.solve(request);
const proxy = successfulProxy(request, result);
if (!proxy) throw new Error('No valid winning proxy index; do not guess');
// For egressAttempts: 2, proxy is request.proxyCandidates[1].
// Submit result.solution through this proxy with its returned browser identity.import os
from solvethree import Solvethree, successful_proxy
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
"site": "accounts.example.com", "action": "login",
"proxyCandidates": [os.environ["PROXY_A"], os.environ["PROXY_B"], os.environ["PROXY_C"]],
}
result = client.solve(request)
proxy = successful_proxy(request, result)
if proxy is None:
raise RuntimeError("No valid winning proxy index; do not guess")
# With egressAttempts == 2, proxy is request["proxyCandidates"][1].
# Use this proxy and the returned identity for the target request.선택한 프록시를 반환된 userAgent, secChUa 및 의도한 대상과 함께 보관하고, 대상 요청에 해당 식별 정보를 사용하세요. SDK는 프록시를 선택할 뿐, 브라우저를 설정하거나 솔루션을 대신 제출하지 않습니다. 솔루션이 준비되었다고 해서 대상이 수락했다는 뜻은 아닙니다.
출처 및 API 레퍼런스
첫 작업을 실행하세요.
워크스페이스 크레딧 $5로 시작하세요.