Tiny Bunny
본문 바로가기
프로젝트/Team

IMMusic Project(16) - Naver crawling

by 내이름효주 2024. 4. 30.
  • 어제에 이어 이미지를 긁어오기는 실패! 이런저런 방식을 다 써봐도 이미지를 찾아오질 못한다...ㅠㅠ😥
    대신 글 목록으로 보여주려고 한다!
  1. 하나의 항목들이 한줄에 담긴 개수만큼의 태그로 묶여있고 그 안에 존재하는 형식
    #contentslist_block > div.list_block__XlpUJ > div > div.list__A6ta5 > ul > li:nth-child(1) > div:nth-child(1)
    #contentslist_block > div.list_block__XlpUJ > div > div.list__A6ta5 > ul > li:nth-child(1) > div:nth-child(2)
    #contentslist_block > div.list_block__XlpUJ > div > div.list__A6ta5 > ul > li:nth-child(1) > div:nth-child(3)​
  2.  5~6개 정도만 뽑고 싶어서 row를 3개로 잡고 그 안에 항목 2개를 뽑을 수 있도록 이중 for문을 활용
    List<WebElement> elements = new ArrayList<>();
    			 
         for (int i = 1; i <= 3; i++) {
             for(int j = 1; j <= 2; j++) {
                 WebElement element = driver.findElement(By.cssSelector("#contentslist_block > div.list_block__XlpUJ > div > div.list__A6ta5 > ul > li:nth-child(" + i + ") > div:nth-child(" + j + ")"));
                 elements.add(element);
             }
         }
  3. 항목들을 for문으로 돌려서 날짜, 제목 등등을 뽑아서 list로 담아서 jsp에서 활용~
         for (WebElement element : elements) {
             String post_date = element.findElement(By.cssSelector("div > div.meta_head__nWqoo > div")).getText();
             String post_url = element.findElement(By.cssSelector("div > div:nth-child(2) > div.thumb_area__IdmrJ > a")).getAttribute("href");
             String post_title = element.findElement(By.cssSelector("div > div > div.text_area__mOuKZ > a > strong > span")).getText();
             String be_post_content = element.findElement(By.cssSelector("div > div > div.text_area__mOuKZ > a > span > span")).getText();
             String post_content = be_post_content.substring(0, 135) + "···";
    
             Blog blog = new Blog(post_date, post_url, post_title, post_content);
             blogList.add(blog);
         }​​

 

📝 16일차 회의록

https://docs.google.com/document/d/1iD0JYnYK6yq-LcM02Y5SmmVbQ-xpYwmhbH3mAlE2bcA/edit