본문 바로가기
FullStack/21. Java

WebDriver를 이용한 Robot 방지 우회

by nakanara 2024. 1. 8.
반응형

 

이전에 만들어둔 WebDriver를 이용한 아마존 웹 크롤링 소스를 실행했는데, 그때는 없었던 로봇방지 화면이 나타났다. 

System.setProperty("webdriver.chrome.driver", "\chromedriver.exe");

String userAgent  = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 ";

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--disable-blink-features=AutomationControlled");
chromeOptions.addArguments("--user-agent=" + userAgent);
chromeOptions.setExperimentalOption("useAutomationExtension", false);

WebDriver driver = new ChromeDriver( chromeOptions);
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})");

 

우회할 수 있는 방법은 여러가지가 있는데 100%가 아니기 때문에 다양한 방법을 시도해야 하며, 언제라도 막힐 수 있다. 

1. 프록시를 이용하여 다양한 IP 사용하기
2. WebDriver라는 표시 제거하기
3. HTTP헤더에 있는 에이전트 정보 변경하기
4. 일괄적인 패턴 변경하기(랜덤 대기, 스크롤 등)

# 참고

- https://www.zenrows.com/blog/selenium-avoid-bot-detection#top-measures-to-avoid-bot-detection-with-selenium

 

반응형