projectmovie7

배승원·2024년 3월 8일

프로젝트

목록 보기
7/12

셀레니움 크롤링

package craw;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class CrawlingTest {

    public static void main(String[] args) {
        // 1. WebDriver와 ChromeDriver 설정
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\admin\\Desktop\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        // 2. 웹 페이지 접속
        String baseUrl = "https://www.kobis.or.kr/kobis/business/main/main.do";
        driver.get(baseUrl);

        // 3. 데이터 추출
        ArrayList<Movie> movie_data = new ArrayList<>();

        WebElement movie_container = driver.findElement(By.cssSelector(".list_movieranking"));

        List<WebElement> movie_links = movie_container.findElements(By.cssSelector(".tit_item>a"));

        for (int i = 0; i < movie_links.size(); i++) {
            String link = movie_links.get(i).getAttribute("href");
            driver.get(link);

            // 영화 정보 추출
            String title = driver.findElement(By.cssSelector(".tit_movie")).getText();
            String star = driver.findElement(By.cssSelector(".emph_grade")).getText();
            String learning_time = driver.findElement(By.cssSelector(".info_tit")).getText();
            String content = driver.findElement(By.cssSelector(".desc_movie")).getText();

            // 이미지 URL 추출
            WebElement movie_image = driver.findElement(By.cssSelector(".img_thumb > img"));
            String image_url = movie_image.getAttribute("src");

            // 영화 정보 출력
            System.out.println((i + 1) + ". " + title + " (" + star + ")");
            System.out.println("   Image URL: " + image_url);

            // 영화 객체 생성 및 리스트에 추가
            Movie movie = new Movie(title, star, learning_time, content, image_url);
            movie_data.add(movie);

            // 이미지 URL을 파일에 저장
            try {
                FileWriter writer = new FileWriter("C:\\Users\\admin\\Desktop\\image_urls.txt", true);
                writer.write(image_url + "\n");
                writer.close();
                System.out.println("이미지 URL이 파일에 저장되었습니다.");
            } catch (IOException e) {
                System.out.println("파일에 이미지 URL을 저장하는 동안 오류가 발생했습니다: " + e.getMessage());
            }

            // 콘솔에 영화 정보 출력
            System.out.println("영화 정보:");
            System.out.println("제목: " + title);
            System.out.println("평점: " + star);
            System.out.println("러닝 타임: " + learning_time);
            System.out.println("내용: " + content);

            driver.navigate().back();
        }

        // 4. WebDriver 종료
        driver.quit();
    }
}
```
저장공간

```
package craw;

public class Movie {
	private String title;
	private String start;
	private String star;
	private String learning_time;
	private String content;
	private String imageUrl; // 이미지 URL 추가

	public Movie(String title,  String star, String learning_time, String content, String imageUrl) {
		this.title = title;
		
		this.star = star;
		this.learning_time = learning_time;
		this.content = content;
		this.imageUrl = imageUrl; // 이미지 URL 설정
	}

	public String getTitle() {
		return title;
	}

	public String getStart() {
		return start;
	}

	public String getStar() {
		return star;
	}

	public String getLearning_time() {
		return learning_time;
	}

	public String getContent() {
		return content;
	}

	public String getImageUrl() {
		return imageUrl; // 이미지 URL 반환
	}

	@Override
	public String toString() {
		return "Movie [title=" + title + ", start=" + start + ", star=" + star + ", learning_time=" + learning_time
				+ ", content=" + content + ", imageUrl=" + imageUrl + "]"; // 이미지 URL 포함하여 출력
	}
}
```

크롤링

셀레니움 오류 크롬 드라이버오류인거같은데 2틀째 해결할수가 없다,,ㅠ
크롬 버전을 다운그레이드 해보고 그 버전에 맞게 드라이버를 다운받았는데도 답이 보이지 않는다

크롤링 할 웹 페이지는 열리는데 거기서 데이터를 뽑아올수 ㅇ벗어서 막막하다,,
파이썬으로 크롤링해서 자바로 변환 시키는걸 시도해봐야겠따.

0개의 댓글