我尝试使用Selenium WebDriver Firefox通过TOR Socks5在9050端口连接到特定站点,但我无法建立连接。
profile = FirefoxProfile()
profile.set_preference('network.proxy.type', 1)
profile.set_preference( "network.proxy.socks_version", 5 )
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
profile.set_preference( "network.proxy.socks_remote_dns", True )
browser = webdriver.Firefox(firefox_profile=profile)
该网站可能阻止了一些TOR连接,但奇怪的是我可以使用TorBrowser连接到它!我甚至找到了TorBrowser使用的退出节点并编辑了我的torrc文件也使用它(ExitNodes 'ip'
)。我检查了我的selenium Firefox的退出节点是否相同(我可以通过TOR代理成功连接到其他网站并检查我的IP),但我仍然无法连接,即使使用相同的IP!我的错误在哪里?
第二件事是如果我设置:
profile.set_preference('network.proxy.socks_port', 9150)
即。使用TorBrowser代理,selenium Firefox成功建立了与该站点的连接。
我的托架设置有问题吗?
答案 0 :(得分:0)
使用 Selenium WebDriver , GeckoDriver 和 Firefox 通过端口上的 TOR Socks5 连接到特定站点strong> 9050 ,您可以启动 tor守护程序,并使用 FirefoxProfile 您可以使用以下解决方案:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
import os
torexe = os.popen(r'C:\Users\AtechM_03\Desktop\Tor Browser\Browser\TorBrowser\Tor\tor.exe')
profile = FirefoxProfile(r'C:\Users\AtechM_03\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default')
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
profile.set_preference("network.proxy.socks_remote_dns", False)
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile= profile, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("http://check.torproject.org")