Envie uma solução de CAPTCHA com Axios
Resolva com o SDK de Node.js e use Axios para a solicitação ao destino. Passe o proxy que funcionou para HttpsProxyAgent e defina proxy: false para que o Axios não aplique uma configuração de proxy concorrente. Sua aplicação ainda precisa fornecer os campos do formulário, o valor de CSRF e os cookies da sessão.
Nesta página
Instale e configure o SDK
Use Node.js 22+ e instale as dependências com npm install axios https-proxy-agent https://solvethree.com/downloads/solvethree-sdk-0.1.0.tgz. O SDK oficial é distribuído por essa URL de tarball; não o substitua por um pacote presumido do registro npm.
- Defina
SOLVETHREE_API_KEYcom a chave de API do seu workspace. Execute este código no servidor e mantenha a chave lá. - Defina
SOLVETHREE_PROXYcom a URL do proxy usado tanto na resolução quanto no envio. - Crie um perfil ativo para o site de destino no console antes da resolução. Fornecer um hostname e uma ação não cria um perfil. Consulte a configuração do perfil do site.
- Substitua o hostname, a ação e a URL de login do exemplo pelos valores da sua aplicação.
siteé um hostname, não uma URL completa; a ação deve corresponder à operação no destino.
Resolva e envie pelo proxy que funcionou
client.solve() cria a tarefa e faz consultas até que ela esteja pronta ou uma exceção seja lançada. O exemplo então seleciona o proxy original que funcionou com successfulProxy(input, result) e o usa na solicitação do Axios.
// npm install axios https-proxy-agent and the official solvethree SDK tarball.
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
import { Solvethree, successfulProxy } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const input = { site: 'accounts.example.com', action: 'login', proxy: process.env.SOLVETHREE_PROXY };
const result = await client.solve(input);
const proxy = successfulProxy(input, result);
if (!proxy) throw new Error('No valid successful proxy');
const agent = new HttpsProxyAgent(proxy);
try {
const response = await axios.post('https://accounts.example.com/login',
new URLSearchParams({ 'g-recaptcha-response': result.solution.token }).toString(), {
httpsAgent: agent, proxy: false, maxRedirects: 0, timeout: 30000,
headers: { 'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': result.solution.userAgent, 'sec-ch-ua': result.solution.secChUa },
validateStatus: () => true,
});
console.log('Application HTTP status:', response.status);
// Add the application's real form fields, CSRF value and session cookies.
} finally { agent.destroy(); }httpsAgent encaminha a solicitação HTTPS ao destino pelo proxy selecionado. proxy: false desativa a configuração de proxy separada do Axios, deixando o agente no controle. Isso configura a solicitação ao destino, não a conexão do SDK com a API do solvethree. O agente é destruído quando a solicitação termina ou falha.
Mantenha os valores retornados de userAgent e secChUa junto com esse proxy. Não os substitua por cabeçalhos de navegador não relacionados ao enviar o token.
Verifique a resposta da aplicação
A chamada do Axios tem um tempo limite de 30 segundos e não segue redirecionamentos. Como validateStatus aceita qualquer status HTTP, verifique response.status e o corpo da resposta por conta própria; uma resposta de erro HTTP não lançará uma exceção apenas por causa do status.
Uma tarefa pronta significa que uma solução foi gerada, não que o destino a aceitou. Verifique a condição real de sucesso da aplicação, em vez de tratar o status HTTP registrado como prova de um login bem-sucedido.
Fontes e referência da API
Execute sua primeira tarefa.
Comece com $5 em créditos no espaço de trabalho.