![](/img/trans.png)
[英]General SOCKS server failure with python tor but working from tor browser
[英]Tor browser, new IP not working?
我正在嘗試使用Tor瀏覽器,並在python中訪問的每個URL都獲得一個新的IP地址。 我可以打開運行Tor瀏覽器的selenium實例,但是如何在訪問的每個網站上請求新的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)
要使用Python為每個請求請求一個新IP,您需要打開與ControlPort的連接並發出NEWNYM信號。
您可以使用Stem簡化連接和命令:
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(交換電路)時,都需要發出此命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.