2015-02-23 137 views
-1

所以我期待在一些.onion網站上做一些簡單的數據收集。我正在通過使用硒webdriver將Tor作爲Firefox webdriver的一部分來解決這個問題。但是,我似乎無法弄清楚如何讓Firefox成功進入.onion網站。這是代碼。Selenium WebDriver(Java)使用Tor的問題

public static void main(String[] args) throws InterruptedException, IOException { 
    File torProfileDir = new File("C:\\Users\\Chambers\\Desktop\\Tor Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default");     
    FirefoxBinary binary = new FirefoxBinary(new File("C:\\Users\\Chambers\\Desktop\\Tor Browser\\Browser\\firefox.exe")); 
    FirefoxProfile torProfile = new FirefoxProfile(torProfileDir); 
    torProfile.setPreference("webdriver.load.strategy", "unstable"); 
    try { 
     binary.startProfile(torProfile, torProfileDir, ""); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    FirefoxProfile profile = new FirefoxProfile(); 
    profile.setPreference("network.proxy.type", 1); 
    profile.setPreference("network.proxy.socks", "127.0.0.1"); 
    profile.setPreference("network.proxy.socks_port", 9150); 
    FirefoxDriver driver = new FirefoxDriver(profile); 
    int firstCheck = "0"; 

    while (firstCheck == 0) { 
     driver.navigate().to("onion site here"); 
     ...... 

我遇到的問題是,我最終會遇到無法連接到.onion網站的Firefox瀏覽器。如果我將FirefoxDriver driver = new FirefoxDriver(profile);更改爲FirefoxDriver driver = new FirefoxDriver(binary, profile);,那麼我剩下一個空白的Tor窗口,我似乎無法使用webdriver進行控制。

任何人有任何想法如何解決這個問題?任何幫助,將不勝感激!

回答

1

想通了。需要爲新配置文件添加許多權限。這是有興趣的人的固定代碼。它允許您使用Firefox瀏覽黑暗網頁,就像使用Tor一樣。控制webdriver的命令不會改變。

File torProfileDir = new File("C:\\Users\\Chambers\\Desktop\\Tor Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default");     
    FirefoxBinary binary = new FirefoxBinary(new File("C:\\Users\\Chambers\\Desktop\\Tor Browser\\Browser\\firefox.exe")); 
    FirefoxProfile torProfile = new FirefoxProfile(torProfileDir); 
    torProfile.setPreference("webdriver.load.strategy", "unstable"); 
    try { 
     binary.startProfile(torProfile, torProfileDir, ""); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    FirefoxProfile profile = new FirefoxProfile(); 
    profile.setPreference("network.proxy.type", 1); 
    profile.setPreference("network.proxy.socks", "127.0.0.1"); 
    profile.setPreference("network.proxy.socks_port", 9150); 
    profile.setPreference("network.proxy.socks_version", 5); 
    profile.setPreference("places.history.enabled", false); 
    profile.setPreference("privacy.clearOnShutdown.offlineApps", true); 
    profile.setPreference("privacy.clearOnShutdown.passwords", true); 
    profile.setPreference("privacy.clearOnShutdown.siteSettings", true); 
    profile.setPreference("privacy.sanitize.sanitizeOnShutdown", true); 
    profile.setPreference("signon.rememberSignons", false); 
    profile.setPreference("network.cookie.lifetimePolicy", 2); 
    profile.setPreference("network.dns.disablePrefetch", true); 
    profile.setPreference("network.http.sendRefererHeader", 0); 
    profile.setPreference("network.proxy.socks_remote_dns", true); 
    FirefoxDriver driver = new FirefoxDriver(profile); 
    String firstCheck = ""; 
    while (firstCheck == 0) { 
     driver.get("http://kbhpodhnfxl3clb4.onion/"); 
     ......................... 
+0

此外,添加在'profile.setPreference( 「permissions.default.image」,2);',使網站加載速度快了很多。常規的.onion網站需要一段時間,所以每一點點都對吧? – 2015-02-23 23:22:07

相關問題