5

私は次のようにhttpポートを設定することに慣れています:

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

そしてそれはうまくいきます。しかし、今はソックスプロキシに接続してポートを設定する必要がありますが、機能していません

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

ドキュメントで参照が見つからなかったので、ここで質問しています。何か案は ?それを行うより良い方法はありますか?

ありがとう

4

3 に答える 3

8

あなたの場合、ポートを文字列ではなくintとして使用する必要があると思います。以下の詳細を参照してください

最初に、FF (または Selenium で使用する Web ドライバー) が SOCKS プロキシを設定する方法を理解しましょう。

Firefox の場合、URL ボックスで about:config を実行します。

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 にする必要があります。

Selenium 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 about:config リストに存在するかどうかを確認してください。

于 2015-09-08T06:55:34.957 に答える
6

以下の例で、ユーザーが socks_port.... をどのように使用しているかを確認してください

using-selenium-for-web-based-hostname-enumeration および gist.github.com

于 2012-09-14T04:39:30.177 に答える
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
   )
于 2013-02-15T11:49:24.203 に答える