Il tuo log ruota i proxy. La tua richiesta usa ancora quello vecchio.
Segui l'endpoint selezionato fino alla chiamata HTTP di invio effettiva, invece di presumere che stampare un nuovo valore cambi la configurazione della richiesta.
Il selettore stampa il proxy A, poi il proxy B. Il log delle richieste continua a mostrare il proxy A. Non serve alcun servizio di rete per spiegare questa contraddizione: chi chiama potrebbe aver scartato il valore di ritorno del selettore.
Segui il valore fino alla chiamata che invia la richiesta:
endpoint = choose_proxy()
routes = {'http': endpoint, 'https': endpoint}
response = session.get(target_url, proxies=routes, timeout=15)
Questo frammento presuppone una sessione Requests esistente e un URL del proxy validato. Per le richieste pubbliche consentite tramite intermediari pubblici, la lista di proxy gratuite fornisce URL candidati che passano dallo stesso percorso di selezione e invio. La parola chiave supportata è proxies. Un helper che stampa una mappatura, o ne restituisce una che nessuno assegna, non può sostituire la mappatura fornita qui.
Mantieni la rotta selezionata locale all'operazione. In codice concorrente, un campo condiviso current_proxy può cambiare tra la registrazione e l'invio. La selezione di un altro worker può quindi comparire accanto al risultato sbagliato.
Usa un identificatore di tentativo per collegare la selezione, la configurazione di invio e il risultato. Registra un identificatore sicuro dell'endpoint invece dell'URL completo quando contiene credenziali.
Se questi valori concordano ma l'IP pubblico osservato non cambia, sei arrivato a un'altra domanda: se gli endpoint selezionati offrono uscite distinte oppure un gateway rotante mantiene una connessione. Stabilisci prima se l'applicazione ha inviato la rotta che afferma di aver selezionato. Altrimenti le congetture lato provider possono nascondere per ore una semplice variabile obsoleta.