Use o user agent e os client hints retornados

Por solvethree3 min de leitura

Use a identidade de navegador retornada na requisição que envia a solução ao site de destino. Defina ambos os cabeçalhos com os valores da solução e envie essa requisição pelo proxy que funcionou durante a resolução.

Nesta página

Substitua os cabeçalhos de navegador existentes

Cabeçalhos da requisição de saída ao destino
Cabeçalhos da requisição de saída ao destino
Cabeçalho HTTPValor da solução pronta
User-Agentsolution.userAgent
sec-ch-uasolution.secChUa

Não mantenha um user agent aleatório do seu scraper ou de uma sessão HTTP existente. Isso substitui a identidade de navegador retornada com a solução por outra sem relação com ela. Atualizar apenas sec-ch-ua faz com que os dois cabeçalhos descrevam navegadores diferentes.

Substitua os valores antigos em vez de adicionar cabeçalhos duplicados. Verifique os valores padrão da sessão ou os middlewares de construção de requisições que possam sobrescrevê-los antes do envio.

Use o proxy que funcionou

Comece com um resultado ready; pending e solving não contêm uma solução utilizável. O método solve do SDK aguarda um resultado pronto ou lança um erro.

Para uma tarefa enviada com um único proxy, reutilize esse proxy na requisição ao destino. Se você forneceu proxyCandidates, selecione o proxy bem-sucedido com successful_proxy(original_task, ready_result) em Python ou successfulProxy(originalTask, readyResult) em JavaScript. Não use simplesmente o primeiro candidato.

Os exemplos abaixo leem o proxy de saída do campo proxy de request. Para uma tarefa baseada em candidatos, coloque ali o valor selecionado pela função auxiliar antes de enviar a requisição. Consulte seleção de candidatos a proxy para ver essa configuração.

Envie a requisição ao destino em Python ou Node.js

Estes exemplos enviam um token reCAPTCHA v3 Enterprise. Em Python, solution é o dicionário de solução do resultado pronto. Em Node.js, result é a tarefa pronta. Ambos os exemplos definem explicitamente os cabeçalhos retornados e encaminham a requisição pelo proxy selecionado.

Python requests · aplicar uma solução pronta
# Continue after client.solve(). Install requests separately: pip install requests.
import requests

# This example endpoint accepts the standard reCAPTCHA form field.
# Use your application's real URL, form fields, CSRF token and session.
response = requests.post(
    "https://accounts.example.com/login",
    data={"g-recaptcha-response": solution["token"]},
    headers={
        "User-Agent": solution["userAgent"],
        "sec-ch-ua": solution["secChUa"],
    },
    proxies={"http": request["proxy"], "https": request["proxy"]},
    timeout=30,
    allow_redirects=False,
)
# Inspect the application's response to determine whether it accepted the request.
print("Application HTTP status:", response.status_code)

Substitua a URL de login de exemplo pela URL de destino pretendida e use os campos de formulário, o token CSRF e a sessão reais dessa aplicação. Os exemplos pressupõem que a aplicação aceita o token em g-recaptcha-response; os cabeçalhos de navegador retornados devem ficar nos cabeçalhos HTTP, não no corpo do formulário.

Se o destino rejeitar a requisição, inspecione o que realmente saiu do seu cliente HTTP: o valor do token, ambos os cabeçalhos de navegador, o proxy e a URL de destino. Uma tarefa ready significa que uma solução foi gerada, não que o destino aceitou seu envio. O status HTTP da aplicação exibido é um ponto de partida; verifique a resposta da aplicação para determinar seu resultado real de sucesso ou falha.

Execute sua primeira tarefa.

Comece com $5 em créditos no espaço de trabalho.

Criar um espaço de trabalho
Use o user agent e os client hints retornados · solvethree