2012-09-14 62 views
0

我習慣設置http端口是這樣的:設置proxy.socks.port硒

profile.set_preference("network.proxy.http_port", "PORTNUMBER") 

和工程。 但現在我需要用SOCKS代理連接和設置的端口,它不工作

profile.set_preference("network.proxy.socks_port", "PORTNUMBER") 

我找不到在文檔的參考,這就是爲什麼我問這裏。 任何想法?有沒有更好的方法來做到這一點?

感謝

+0

看看用戶如何使用socks_port ....在例子中http://www.wsec.be/blog/2012/05/22/using-selenium-for-web-based-hostname-enumeration/& https://gist.github.com/2402041 – avasal

+0

謝謝!哇,我簡直不敢相信我錯過了那個「細節」嘿嘿。你可以把它作爲答案補充,以便我可以接受它嗎? – rowasc

+0

當然,沒問題:) – avasal

回答

0
ffprofile=webdriver.FirefoxProfile() 
ffprofile.set_preference('network.proxy.type', 1) 
ffprofile.set_preference('network.proxy.http', HTTP_IP) 

ffprofile.set_preference("network.proxy.http_port", HTTPPORT) 
ffprofile.set_preference('network.proxy.socks', 'SOCKS_IP') 
ffprofile.set_preference('network.proxy.socks_port', SOCKSPORT) 

ffprofile.update_preferences() 

driver = webdriver.Remote(
    command_executor='http://SELENIUM:PORT/wd/hub', 
    desired_capabilities=DesiredCapabilities.FIREFOX, 
    browser_profile = ffprofile 
    ) 
2

在你的情況,我想,你應該使用的端口作爲int而不是字符串。看下面的詳細信息

讓我們先了解FF(或您使用Selenium使用的網絡驅動程序)如何設置SOCKS代理。

對於Firefox,請執行以下操作:在URL框中進行配置。

network.proxy.socks;10.10.10.1 
network.proxy.socks_port;8999 
network.proxy.socks_remote_dns;true 
network.proxy.socks_version;5 

你可以看到如下FF輪廓導演的prefs.js相同:

user_pref("network.proxy.socks", "10.10.10.1"); 
user_pref("network.proxy.socks_port", 8999); 
user_pref("network.proxy.type", 1); 

需要注意的是,network.proxy.socks是字符串,它應該僅僅設置爲字符串。 network.proxy.socks_port必須是int。

在使用硒Python模塊設置它:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.proxy import * 
import time 

# for fresh FF profile 
#profile = webdriver.FirefoxProfile() 
profile_path="/path/to/custom/profile/" 
profile = webdriver.FirefoxProfile(profile_path) 
# set FF preference to socks proxy 
profile.set_preference("network.proxy.type", 1) 
profile.set_preference("network.proxy.socks", "10.10.10.1") 
profile.set_preference("network.proxy.socks_port", 8999) 
profile.set_preference("network.proxy.socks_version", 5) 
profile.update_preferences() 
driver = webdriver.Firefox(firefox_profile=profile) 

driver.get("http://whatismyip.com") 
print driver.page_source 
# sleep if want to show in gui mode. we do print it in cmd 
time.sleep(25) 
driver.close() 
driver.quit() 

請檢查是否給予優先支持,並以約FF:配置列表。