CrawlingController.java
//네이버 여행 셀레늄 데이터 뽑아내기
@ResponseBody
@RequestMapping("travel.json")
public ArrayList<HashMap<String,Object>> travel()throws Exception{
ArrayList<HashMap<String,Object>> list=new ArrayList<HashMap<String,Object>>();
//셀레늄을 쓰는 경우
//드라이브 설정
System.setProperty("webdriver.chrome.driver", "c:/spring/chromedriver.exe");
ChromeOptions option=new ChromeOptions();
option.addArguments("headless");
WebDriver driver=new ChromeDriver(option);
//위치에 맞은 설정
driver.get("https://www.naver.com/");
//버튼 찾기
WebElement btnTheme=driver.findElement(By.id("PM_ID_themecastNavi")).findElement(By.className("ac_btn_cate"));
//버튼 누르기
btnTheme.click();
WebElement theme = driver.findElement(By.id("PM_ID_themeEditItemList"));
//theme 찾기
List<WebElement> themes=theme.findElements(By.className("at_item"));
for(WebElement e:themes){
WebElement item=e.findElement(By.className("PM_CL_themeItemSelect"));
if(item.getAttribute("data-id").equals("TRAVEL")){
item.click();
WebElement travel=driver.findElement(By.id("PM_ID_themecastBody"));
List<WebElement> travels=travel.findElements(By.className("tl_default"));
for(WebElement el:travels){
WebElement title=el.findElement(By.className("td_t"));
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("title",title.getText());
list.add(map);
}
}
}
driver.quit();
return list;
}
'spring' 카테고리의 다른 글
클로링 과 셀레니움 (0) | 2019.12.24 |
---|---|
파일업로드 & 트랜젝션 & 로그인 (0) | 2019.12.11 |
파일 업로드 라이브러리 임포트 (0) | 2019.12.06 |
Controller Tip (0) | 2019.12.06 |
프로필 사진 수정하기 (0) | 2019.12.06 |