본문 바로가기

개발(합니다)/TOOL

[selenium] 시크릿 모드와 프록시 설정

반응형

selenium을 사용하다보니 시크릿모드와 프록시를 사용해야 상황에서 사용합니다.

 

프록시를 여러개 바꿔서 설정하고 크롬 옵션을 같이 사용하려면 "DesiredCapabilities"을 사용하면 됩니다.

 

 

자바 

this.driverId = "webdriver.chrome.driver";
this.driverPath = path + "chromedriver.exe";
System.setProperty(this.driverId, this.driverPath); // 드라이버 설정
ChromeOptions cOptions = new ChromeOptions(); // 크롬 옵션
cOptions.addArguments("disable-infobars");
cOptions.addArguments("--js-flags=--expose-gc");
cOptions.addArguments("--enable-precise-memory-info");
cOptions.addArguments("--disable-popup-blocking");
cOptions.addArguments("--disable-default-apps");
// 시크릿 모드로 실행하는 옵션
cOptions.addArguments("--incognito");
//cOptions.AddArguments("--headless");

// 프록시 설정
String proxyURL = this.proxyList.get(checkIndex());
System.out.println("proxyURL : " + proxyURL);

Proxy proxy = new Proxy(); // 프록시 설정
proxy.setHttpProxy(proxyURL);
proxy.setFtpProxy(proxyURL);
proxy.setSslProxy(proxyURL);

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);

capabilities.setCapability(ChromeOptions.CAPABILITY, cOptions);

return new ChromeDriver(capabilities);

 


샘플

 

자바

ChromeOptions chromeOptions = new ChromeOptions();
String proxy = "111.111.111.111:8080";
Proxy proxy = new Proxy();
proxy.setHttpProxy(proxy);
proxy.setSslProxy(proxy);
chromeOptions.setCapability("proxy", proxy);
WebDriver driver  = new ChromeDriver(chromeOptions);

 

파이썬

 

from selenium import webdriver

PROXY="111.111.111.111:8080"
webdriver.DesiredCapabilities.CHROME['proxy'] = {
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",

}
webdriver.DesiredCapabilities.CHROME['acceptSslCerts']=True
driver =webdriver.Chrome(r".\chromedriver.exe")
driver.get("https://www.google.com")

 

public class ChromeTest {
  public static void main(String[] args) {
    System.setProperty(“webdriver.chrome.driver”, “/chromedriver.exe”);
    Proxy proxy = newProxy(); 
    proxy.setHttpProxy(“PROXYHOST:PORT”); 
    proxy.setSslProxy(“PROXYHOST:PORT”);

    DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
    capabilities.setCapability(“proxy”, proxy);

    ChromeOptions options = newChromeOptions();
    options.addArguments(“start-maximized”); 
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);

    WebDriver driver = newChromeDriver(capabilities); 
    driver.get(“http://www.example.com”); 
    driver.manage().window().maximize(); 
    driver.quit();
  }
}

 

 

 


프록시가 정상적으로 동작하지 않을 때는 Tor 브라우저를 다운받아 놓고

아래 소스를 실행하면 어려움 없이 가능합니다.

 

chromeOptions.addArguments("--proxy-server=socks5://127.0.0.1:9150");
                cOptions.addArguments("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36");

 

반응형