본문 바로가기

spring

네이버 여행 카테코리에 한 부분 셀레니움하기

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