2015-11-03 108 views
0

我正在嘗試使用tor瀏覽器,並獲取每個我在python中訪問的URL的新IP地址。我可以打開一個運行tor瀏覽器的硒實例,但是如何在每次訪問的網站上請求新的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(交換機電路)時發出此命令。

相關問題