셀레니움 크롤링
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틀째 해결할수가 없다,,ㅠ
크롬 버전을 다운그레이드 해보고 그 버전에 맞게 드라이버를 다운받았는데도 답이 보이지 않는다
크롤링 할 웹 페이지는 열리는데 거기서 데이터를 뽑아올수 ㅇ벗어서 막막하다,,
파이썬으로 크롤링해서 자바로 변환 시키는걸 시도해봐야겠따.