2015-02-23 101 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

相关问题