저녁 9시에 진행되는 KBS 뉴스 9은 방송 다시보기를 통해 방송했던 내용을 뉴스 주제별로 볼 수 있는 서비스를 제공합니다.

2023년 5월 1일에 방송된 뉴스의 리스트는 아래 링크를 통해 KBS 뉴스 9 페이지를 방문해서 아래 캡쳐된 이미지와 같이 확인할 수 있습니다.

  1. [10점] 5월 1일에 뉴스로 방송된 30개 클립의 **제목(title)**을 수집해서 q2_1.xlsx로 저장하세요.

  2. [10점] 5월 1일에 뉴스로 방송된 30개 클립의 {제목, 기자(reporter), 분야(category), 영상길이(duration)}를 수집해서 q2_2.xlsx로 저장하세요.

  3. [10점] 5월 1일(월)부터 5월 5(금)까지 5일 동안 방송된 클립에 대해 {날짜(date), 제목, 기자, 분야, 영상 길이}를 수집해서 q2_3.xlsx로 저장하세요. Hint) URL 주소에 들어가는 날짜를 변경하면 지정한 날로 이동할 수 있습니다. 다만 아래처럼 Selenium을 사용해서 동일 주소를 두 번 navigate를 시켜야 페이지가 변경됩니다.

    URL <- "<https://news.kbs.co.kr/vod/program.do?bcd=0001&ref=pGnb#20230502&1>"
    remDr$navigate(URL)
    remDr$navigate(URL)
    

    이 문제를 풀 때는 반드시 kbs라는 함수를 사용해야 합니다. 이 함수는 연월일로 된 날짜(예: 20230501)를 dt라는 이름의 인자(argument)로 갖습니다. kbs(dt) 즉, 이 함수에 날짜를 입력하면 해당 날짜에 뉴스 9에서 송출된 뉴스 기사가 수집되어야 합니다. 이 함수를 사용해서 날짜를 변경하면서 여러 날에 걸쳐 방송된 뉴스 클립들의 정보를 수집하세요. 이 문제에서 함수를 사용하지 않으면 5점이 감점됩니다.

  4. [10점] 5월 1일에 방송된 뉴스를 대상으로, 처음 8개 뉴스의 방송 스크립트를 수집하세요. 개별 뉴스에 연결되어 있는 기사 상세 내용으로 연결되는 페이지의 링크를 수집한 후, 각 페이지의 소스를 읽어와서 거기서 스크립트를 수집하면 됩니다. 8개 뉴스의 {제목, 링크(link), 스크립트(script)}을 수집해서 q2_4.xlsx로 저장하세요.

기사 스크립트 추출을 할 때는 css selector 값으로 "#cont_newstext"을 사용하세요. 스크립트를 수집한 후 추가로 전처리를 할 필요는 없습니다.

이 문제를 풀 때는 Selenium을 사용해도 되고, Selenium을 사용하지 않고 뉴스 상세 정보 링크를 이용해서 HTML Source를 rvest::read_html 함수를 써서 가져와도 스크립트 수집이 가능합니다.

![Untitled](<https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5ba2e785-cd5f-40b1-97b6-a29a30ecb204/Untitled.png>)
  1. [Optional, Extra 5점, 어려움, 시험 시간이 남는 경우 시도 바람] 5월 1일 첫 번째 기사였던, “[르포] 가락시장의 철야 노동자들 “주 52시간 꿈도 못 꿔”[5인미만 차별①]”를 대상으로 작업하세요.

    기사 스크립트 아래에는 기자의 이름과 이메일이 나오고 그 아래에는 ‘댓글’과 ‘좋아요 수’를 볼 수 있는 아이콘이 있습니다.

    Untitled

    댓글 관련 아이콘을 클릭하면 기사에 달린 댓글을 볼 수 있습니다. 이 문제를 출제하는 시점에는 위 캡쳐 이미지에 나온 것처럼 10개의 댓글이 있었음을 볼 수 있습니다. 댓글 아이콘을 누르면 댓글 일부 아래와 같이 나타납니다. 현재 시점에서 댓글 버튼을 눌렀을 때 노출되는 댓글 전체를 수집하고 이를 q2_5.xlsx로 저장하세요. (저장할 파일에는 댓글이 담긴 컬럼 하나만 포함하면 됩니다.)

    Untitled