O seletor imprime o proxy A, depois o proxy B. O log de requisições continua mostrando o proxy A. Não é preciso um serviço de rede para explicar essa contradição: quem chama pode ter descartado o valor de retorno do seletor.

Rastreie o valor até a chamada que envia a requisição:

endpoint = choose_proxy()
routes = {'http': endpoint, 'https': endpoint}
response = session.get(target_url, proxies=routes, timeout=15)

Este trecho pressupõe uma sessão Requests existente e uma URL de proxy validada. Para requisições públicas permitidas por intermediários públicos, a lista de proxies gratuitos fornece URLs candidatas que passam pelo mesmo caminho de seleção e envio. A palavra-chave suportada é proxies. Um auxiliar que imprime um mapeamento, ou devolve um que ninguém atribui, não pode substituir o mapeamento fornecido aqui.

Mantenha a rota selecionada local à operação. Em código concorrente, um campo compartilhado current_proxy pode mudar entre o registro e o envio. Então a seleção de outro trabalhador pode aparecer ao lado do resultado errado.

Use um identificador de tentativa para conectar a seleção, a configuração de envio e o resultado. Registre um identificador seguro do endpoint em vez da URL completa quando ela contiver credenciais.

Se esses valores coincidem mas o IP público observado não muda, você chegou a outra pergunta: se os endpoints selecionados oferecem saídas distintas ou se um gateway rotativo mantém uma conexão. Primeiro determine se a aplicação enviou a rota que afirma ter selecionado. Caso contrário, especulações do lado do provedor podem esconder uma simples variável obsoleta por horas.

Artigos relacionados