2012-02-29 52 views
0

這是硒文檔的例子:如何在Selenium 2的FirefoxDriver中設置像「user:[email protected]:8043」這樣的代理?

from selenium import webdriver 

PROXY_HOST = "host" 
PROXY_PORT = 8080 

fp = webdriver.FirefoxProfile() 

# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5 
fp.set_preference("network.proxy.type", 1) 

fp.set_preference("network.proxy.http", PROXY_HOST) 
fp.set_preference("network.proxy.http_port", PROXY_PORT) 
fp.set_preference("network.proxy.ftp", PROXY_HOST) 
fp.set_preference("network.proxy.ftp_port", PROXY_PORT) 
fp.set_preference("network.proxy.ssl", PROXY_HOST) 
fp.set_preference("network.proxy.ssl_port", PROXY_PORT) 

fp.set_preference("network.proxy.no_proxies_on", "") # set this value as desired 

driver = webdriver.Firefox(firefox_profile=fp) 

好吧,如果我想設置一個私人代理如"user:[email protected]:8043"

還有一個問題,我如何捕獲404,403,502等HTTP異常?

回答

0

我倒沒爲蟒蛇,但我相信,如果你更新這兩個值:

PROXY_HOST = "user:[email protected]" 
PROXY_PORT = 8043 

它應該工作。

順便說一句,關於同一主題:我也坐在代理之後,從來沒有在我的Firefox WebDriver中設置代理配置。

我使用Java,所以它可以是java的webdriver的,或者僅僅是事實,我只訪問背後的代理網站...

編輯

嘗試添加到這個你的個人資料。希望它能幫助:

fp.setPreference("browser.safebrowsing.malware.enabled", false); 

上述設置允許在URL

+0

嗯,它不起作用。您必須將其設置爲'PROXY_HOST =「6.6.6.6」'和'PROXY_PORT = 8043',然後手動輸入用戶名並在驗證框彈出時通過。 – Shane 2012-02-29 15:37:50

+0

aahh,好的。我很高興你解決了它 – 2012-02-29 18:22:05

+0

不,我沒有解決它。我想要一個解決方案來自動設置代理,而不是手動輸入用戶/密碼。 – Shane 2012-03-01 02:15:13

1

我不知道的方式發送用戶名和密碼來傳遞這樣的一個用戶名和密碼。我如何處理它是使用webdriver來捕捉彈出窗口和send_keys()到那個彈出窗口,就像你在普通頁面上一樣。

0

在和Selenium玩了很長一段時間之後,我意識到它並不是用來與代理一起工作的,這絕對是一個痛苦的屁股。如果你想讓它像我過去一樣工作。我最終轉向像requests這樣的工具,用於我的大部分代理相關工作。

相關問題