개발/Spring Boot
Spring Boot - Java 동적 페이지 웹 크롤링 Selenium
홀든콜필드
2023. 12. 25. 00:38
728x90
- Notion에서 Tistory로 자동업로드하는 프로젝트를 진행중에 정적 웹 크롤링과 동적 웹 크롤링이 다르다는 것을 알게 되었다. 그래서 동적 웹 크롤링을 따로 공부해야했다.
Selenium
- 셀레니움은 웹 애플리케이션을 실행시켜볼 수 있는 프레임워크이다. 자동 로그인, 자동 글쓰기, 자동 클릭 등 많은 기능을 사용할 수 있다.
- 의존성 Gradle
implementation 'org.seleniumhq.selenium:selenium-java:4.6.0'
- Chrome Driver 다운로드
- 크롬 우측 위 … 클릭
- 도움말 Chrome 정보 클릭 후 버전 확인
- https://chromedriver.chromium.org/downloads 사이트에서 맞는 Chrome driver 다운로드
다운받은 chromedriver를 위처럼 설정
TEST
- 세팅
@GetMappint("TEST")
public void crawlingSelenium(String url) throws InterruptedException, IOException {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("<https://www.naver.com/>");
System.out.println(driver.getPageSource());
driver.quit();
}
위 코드는 간단하게 네이버 사이트에서 HTML 코드를 가져오는 코드이다.
결과
정상적으로 네이버의 HTML 코드를 가져온 모습이다. 이후
driver.findElements(By.*className*("whenContentEditable")
같은 findElements 함수를 통해 적절하게 파싱하며 원하는 정보를 사용할 수 있다.