[Selenium] Spring boot에서 Selenium으로 크롤링하기.
2022. 1. 30. 17:25ㆍCoding/Java SpringBoot
728x90
Selenium 공식 주소
WebDriver 다운 주소(사용하는 Chrome과 맞는 버전으로 받아야함.)
https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
Gradle에 추가
1
|
implementation 'org.seleniumhq.selenium:selenium-java:4.0.0'
|
cs |
크롤링 Code
WebDriverUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
import lombok.extern.slf4j.Slf4j;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.concurrent.TimeUnit;
@Slf4j
public class WebDriverUtil {
private WebDriver driver;
public static String WEB_DRIVER_ID = "webdriver.chrome.driver"; // Properties 설정
public static String WEB_DRIVER_PATH = "C:/dev/python/crawling/webdriver/chromedriver.exe"; // WebDriver 경로
public WebDriverUtil() {
chrome();
}
private void chrome() {
System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
// webDriver 옵션 설정.
ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
options.addArguments("--lang=ko");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-gpu");
options.setCapability("ignoreProtectedModeSettings", true);
// weDriver 생성.
driver = new ChromeDriver(options);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
}
public void useDriver(String url) {
driver.get(url) ;
driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS); // 페이지 불러오는 여유시간.
log.info("++++++++++++++++++++++===================+++++++++++++ selenium : " + driver.getTitle());
WebElement searchLabel = driver.findElement(By.id("label-text"));
log.info("++++++++++++++++++++++===================+++++++++++++ searchLabel : " + searchLabel.getText());
quitDriver();
}
private void quitDriver() {
driver.quit(); // webDriver 종료
}
}
|
cs |
실행 Code
1
2
|
WebDriverUtil webDriverUtil = new WebDriverUtil();
webDriverUtil.useDriver("https://www.youtube.com/c/youtubekorea/videos");
|
cs |
Python환경이 아닌, java의 Spring boot에서 Selenium을 쓸 일이 있어서 찾아보니,
seleninum도 4.0이 나오고 코드들이 중구난방이 많아서 정리.
- 14줄에 본인이 받은 webDriver의 경로 입력.
- 24~30줄 실행할 webDriver에 옵션을 주는거 같은데, 퍼온거라 잘 모름^^
(브라우저를 실제로 띄우지 않고, 백그라운드에서 크롤링 작업하는 옵션 포함) - 34,39줄 selenium4.0에서 바뀐 사용법,
parameter로 시간과 시간의 타입을 받음 - 43줄 selenium4.0에서 바뀐 사용법,
.findElementById -> .findElement(By.id("아이디")) 이렇게 바뀜.
실행 Code를 필요한 Controller나 Service쪽에서 사용하면 될듯?
728x90