5.22 크롤링 동적/정적

김용희·2023년 7월 18일

정적 : 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;
    }}
profile
쓰용

0개의 댓글