2015-11-03 5 views
0

Я пытаюсь использовать браузер браузера и получить новый IP-адрес для каждого URL-адреса, который я посещаю в python. Я могу открыть экземпляр селена, запускающего браузер браузера, но как я могу запросить новый IP-адрес на каждом веб-сайте, который я посещаю?Tor браузер, новый IP не работает?

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) 

ответ

2

Чтобы использовать Python, чтобы запросить новый IP-адрес для каждого запроса, вам необходимо открыть соединение с ControlPort и выдавать сигнал NEWNYM.

Вы можете использовать Стержень для упрощения подключения и команды:

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 

Имейте в виду, Tor может ограничить скорость NEWNYM запросов, так что вы, возможно, придется подождать некоторое время (по умолчанию 10 секунд) до выдачи этой команды. Кроме того, из-за ограниченного количества выходных узлов ваши схемы могут получить один и тот же узел выхода в зависимости от количества запросов, которые вы отправляете.

Необходимо выполнить эту команду каждый раз, когда вы хотите получить новый IP-адрес (цепи коммутатора).

Смежные вопросы