O teu rexistro rota proxies. A túa petición segue usando o antigo.
Segue o punto final seleccionado ata a chamada HTTP de envío real, en vez de supoñer que imprimir un valor novo cambia a configuración da petición.
O selector imprime o proxy A e despois o proxy B. O rexistro de peticións segue mostrando o proxy A. Non fai falta un servizo de rede para explicar esa contradición: pode que quen chama descartase o valor de retorno do selector.
Segue o valor ata a chamada que envía a petición:
endpoint = choose_proxy()
routes = {'http': endpoint, 'https': endpoint}
response = session.get(target_url, proxies=routes, timeout=15)
Este fragmento presupón unha sesión de Requests existente e un URL de proxy validado. Para peticións públicas permitidas a través de intermediarios públicos, a lista de proxies gratuítos ofrece URL candidatos que pasan polo mesmo camiño de selección e envío. A palabra clave admitida é proxies. Un axudante que imprime unha asignación, ou que devolve unha que ninguén asigna, non pode substituír a asignación que se fornece aquí.
Mantén a ruta seleccionada local á operación. En código concorrente, un campo compartido current_proxy pode cambiar entre o rexistro e o envío. Entón a selección doutro traballador pode aparecer xunto ao resultado incorrecto.
Usa un identificador de intento para conectar a selección, a configuración de envío e o resultado. Rexistra un identificador seguro do punto final en vez do URL completo cando conteña credenciais.
Se eses valores coinciden pero o IP público observado non cambia, chegaches a outra pregunta: se os puntos finais seleccionados ofrecen saídas distintas ou se unha pasarela rotativa retén unha conexión. Primeiro determina se a aplicación enviou a ruta que di ter seleccionado. Se non, as suposicións do provedor poden ocultar unha simple variable obsoleta durante horas.