Seu log alterna proxies. Sua requisição ainda usa o antigo.
Rastreie o endpoint selecionado até a chamada HTTP de envio real, em vez de supor que imprimir um novo valor altera a configuração da requisição.
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.