web-dev-qa-db-ja.com

プロキシサーバーの背後でSeleniumを実行する

python)で自動ブラウザシミュレーションとWebスクレイピングにSeleniumを使用していて、うまく機能しました。しかし、今はプロキシサーバーの背後で実行する必要があるため、Seleniumはウィンドウですが、開いているブラウザでプロキシ設定が設定されていないため、要求されたページを開けませんでした。現在のコードは次のとおりです(サンプル):

from Selenium import webdriver

sel = webdriver.Firefox()
sel.get('http://www.google.com')
sel.title
sel.quit()

上記のコードをプロキシサーバーで動作するように変更するにはどうすればよいですか?

14
Aryabhatt

次のように、必要な機能またはブラウザプロファイルを設定する必要があります。

profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "proxy.server.address")
profile.set_preference("network.proxy.http_port", "port_number")
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)

関連するスレッドもご覧ください:

22
alecxe

Seleniumの公式ドキュメント( http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy )には、プロキシの使用に関する明確で役立つガイドラインが記載されています。 Firefox(サンプルコードで選択したブラウザ)の場合は、次の操作を行う必要があります。

from Selenium import webdriver
from Selenium.webdriver.common.proxy import *

myProxy = "Host:8080"

proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': myProxy,
    'ftpProxy': myProxy,
    'sslProxy': myProxy,
    'noProxy': '' # set this value as desired
    })

driver = webdriver.Firefox(proxy=proxy)
8
kntonas

これは仕事をします:

import Selenium
from Selenium.webdriver.common.proxy import *

proxyHost = "my.proxy.Host or IP"
proxyPort = "55555"

fp = webdriver.FirefoxProfile()
fp.set_preference("network.proxy.type", 1)
#fp.set_preference("network.proxy.http", proxyHost) #HTTP PROXY
#fp.set_preference("network.proxy.http_port", int(proxyPort))
#fp.set_preference("network.proxy.ssl", proxyHost) #SSL  PROXY
#fp.set_preference("network.proxy.ssl_port", int(proxyPort))
fp.set_preference('network.proxy.socks', proxyHost) #SOCKS PROXY
fp.set_preference('network.proxy.socks_port', int(proxyPort))
fp.update_preferences()

driver = webdriver.Firefox(firefox_profile=fp)

driver.get("http://www.whatismyip.com/")
3
Pedro Lobito
def install_proxy(PROXY_Host,PROXY_PORT):
    fp = webdriver.FirefoxProfile()
    print PROXY_PORT
    print PROXY_Host
    fp.set_preference("network.proxy.type", 1)
    fp.set_preference("network.proxy.http",PROXY_Host)
    fp.set_preference("network.proxy.http_port",int(PROXY_PORT))
    fp.set_preference("network.proxy.https",PROXY_Host)
    fp.set_preference("network.proxy.https_port",int(PROXY_PORT))
    fp.set_preference("network.proxy.ssl",PROXY_Host)
    fp.set_preference("network.proxy.ssl_port",int(PROXY_PORT))  
    fp.set_preference("network.proxy.ftp",PROXY_Host)
    fp.set_preference("network.proxy.ftp_port",int(PROXY_PORT))   
    fp.set_preference("network.proxy.socks",PROXY_Host)
    fp.set_preference("network.proxy.socks_port",int(PROXY_PORT))   
    fp.set_preference("general.useragent.override","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A")
    fp.update_preferences()
    return webdriver.Firefox(firefox_profile=fp)
0
chowmean