¿Tor browser, nueva IP no funciona?

Estoy intentando usar el navegador y obtener una nueva dirección IP en cada URL que visito en Python. Soy capaz de abrir una instancia de selenium que ejecuta el navegador tor, pero ¿cómo puedo solicitar una nueva IP en cada sitio web que visito?

binary = '/Applications/TorBrowser.app/Contents/MacOS/firefox' if os.path.exists(binary) is False: raise ValueError("The binary path to Tor firefox does not exist.") firefox_binary = FirefoxBinary(binary) browser = None def get_browser(binary=None): browser = webdriver.Firefox(firefox_binary=binary) return browser if __name__ == "__main__": browser = get_browser(binary=firefox_binary) urls = ( ('tor browser check', 'https://check.torproject.org/'), ('ip checker', 'http://icanhazip.com') ) for url_name, url in urls: print "getting", url_name, "at", url browser.get(url) 

Para usar Python para solicitar una nueva IP para cada solicitud, debe abrir una conexión a ControlPort y emitir una señal NEWNYM.

Puedes usar Stem para simplificar la conexión y los comandos:

 from stem.control import Controller from stem import Signal if __name__ == '__main__': with Controller.from_port(port = 9051) as controller: controller.authenticate('password') # provide the password here if you set one controller.signal(Signal.NEWNYM) # switch to clean circuits 

Tenga en cuenta que Tor puede calificar el límite de solicitudes NEWNYM por lo que es posible que deba esperar un poco (10 segundos por defecto) antes de emitir ese comando. Además, debido a la cantidad limitada de nodos de salida, sus circuitos pueden obtener el mismo nodo de salida dependiendo de cuántas solicitudes esté emitiendo.

Debe emitir este comando cada vez que desee obtener una nueva IP (conmutar circuitos).