정적 : jsoup 라이브러리 이용
동적 : selenium 라이브러리 이용
참조 : 자바, Spring Boot로 크롤링하기 - Selenium 이용 (동적페이지), 속도 개선 방법
https://lotuus.tistory.com/108
package com.shinhan.education;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Component
public class CrawlingSelenium {
private WebDriver driver;
private static final String url = "https://www.car365.go.kr/web/contents/usedcar_carcompare.do";
public void process() {
System.setProperty("webdriver.chrome.driver", "C:\\workspace-SpringBoot\\chromedriver_win32\\chromedriver.exe");
//크롬 드라이버 셋팅 (드라이버 설치한 경로 입력)
driver = new ChromeDriver();
//브라우저 선택
try {
getDataList();
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.close(); //탭 닫기
driver.quit(); //브라우저 닫기
}
/**
* data가져오기
*/
private void getDataList() throws InterruptedException {
List<String> list = new ArrayList<>();
driver.get(url); //브라우저에서 url로 이동한다.
Thread.sleep(1000); //브라우저 로딩될때까지 잠시 기다린다.
WebElement tab2 = driver.findElement(By.id("searchStr"));
tab2.sendKeys("39루9599"); //372저1164
WebElement tab1 = driver.findElement(By.xpath("//*[@id=\"wrap\"]/div/div[2]/div[2]/div[2]/a"));
tab1.click();
List<WebElement> elements = driver.findElements(By.cssSelector("#usedcarcompare_data td"));
for (WebElement element : elements) {
System.out.println(element.getText());
}
//return list;
}
}