반응형
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");
반응형
'개발(합니다) > TOOL' 카테고리의 다른 글
[Intellij] 인텔리제이 .properties 파일 유니코드 한글 변환 방법 (0) | 2021.04.11 |
---|---|
[selenium] selenium으로 크롬 확장 도구 사용하기 (2) | 2021.03.28 |
vscode coderun 플러그인 실행 시 인코딩 깨짐 현상2 (0) | 2020.12.11 |
원노트 사용법 정리 (6) | 2020.12.04 |
이클립스에서 C/C++ 사용하기 (0) | 2018.12.30 |