:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API

0. 지난번 포스팅 내용 지난 번 포스팅 때는 네이버 뉴스 크롤러를 만들었습니다.이 내용은, 이하의 링크에 액세스 하면 확인할 수 있습니다.0. 지난번 포스팅 내용: 지난번 포스팅 때는 네이버 뉴스 메인 페이지를 클릭하여 필요한 정보를 얻었습니다.blog.naver.com1. 이번 포스팅 내용은 이번 포스팅에서는 지난 포스팅 결과를 이용해 네이버 뉴스 기사를 카카오톡을 통해 전송하는 과정을 2. 지난 포스팅 때 결과물을 가져오기까지의 포스팅 과정을 돌이켜볼 때, ‘카카오톡톡톡 발급’ ‘리스트 형식의 템플릿 작성’ ‘템플릿에 들어가는 정보(네이버 뉴스 기사)의 기사)를 거쳐 왔습니다.각각의 과정은 모두 이 결과를 만들기 위한 도구입니다.이 도구들을 순서대로 불러오도록 합니다.

2. 토큰 발급받기

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 1

만료된 카카오톡 access_token을 refresh_token을 이용하여 발급하였습니다.재발급 받은 access_token은 access_token이라는 이름으로 저장하였습니다.

2. 뉴스 기사에 대한 링크나 정보를 가져오는 함수를 정의한다

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 2
:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 3

main_news_link라고 하는 함수와 section_name라고 하는 함수를 정의했습니다.main_news_link 함수는 해당 섹션의 메인 뉴스 기사에 대한 링크를 얻는 함수로, 결과물로는 news_link라는 목록에 네이버 뉴스 기사 링크를 넣어서 return합니다.section_name 함수는 섹션의 정보 즉, 어떤 섹션인지 카테고리를 알려주는 함수입니다. 결과물은 category 변수에 섹션 정보를 넣고 return 합니다.

2.3. 반복문을 활용하여 템플릿에 들어갈 정보를 추출한다 (뉴스의 제목, 시간, 내용)

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 4

반복되는 글을 이용하여 카카오톡 목록 템플릿에 들어갈 정보를 목록으로 보여줍니다.아까 제가 포스팅에서 말씀드렸듯이 빈 리스트를 계속 만들어 놓고 반복적으로 글이 돌아가면서 뉴스 제목, 뉴스 작성 시간, 내용, 링크 등을 표시합니다.section에 필요한 섹션의 이름을 쓰면 따로 수정할 부분 없이 원하는 섹션의 결과값을 호출할 수 있습니다.사용할 수 있는 섹션의 종류는 다음과 같습니다.

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 5

자, 카카오 템플릿에 들어가는 모든 정보가 구성되었습니다.카톡 API를 이용해서 저에게 카톡을 보내주세요!

2.4 카카오 API를 이용해서 나에게 카카오톡을 보낸다

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 6
:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 7

앞으로 카톡 API를 이용해서 저에게 카톡을 보내도록 하겠습니다해당 코드에 대해서는 이전 포스팅에서 설명을 했으니까 따로 설명을 하지는 않겠습니다.하나만 설명드리면, kakao템플릿에 들어갈 contents를 저장하는 부분에서 여러 목록을 반복문에 사용하기 위해 zip()함수를 사용했습니다.반복 문장 내에서는 title, date, n_link 변수에 각각 title_name, date_time, news_link 세 가지 목록의 값이 차례로 들어갑니다.그리고 한 번 반복해서 글이 돌고 만들어지는 title, date, n_link 세트에는 news_contents 목록의 한 값이 들어갑니다.반복해서 글이 돌아가면 총 3개의 contents가 만들어지고 각 contents 안에는 title, description, url, image_link 이런 정보가 저장됩니다. (image_url은 따로 넣은 사진이 없기 때문에 링크 부분을 자유롭게 넣어놨습니다.

이와 같이 코드를 실행시키면 송신이 완료한 것을 알립니다.그리고 카톡을 확인해 보면

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 8

이렇게 결과가 나타나고 있음을 알 수 있습니다.각 뉴스 제목을 클릭하면 뉴스 본문으로 이동합니다.

3. 한번에 모든 섹션의 뉴스 기사를 카카오톡으로 전송하고, 다양한 섹션의 뉴스 기사를 골고루 읽는 것을 목적으로 하기 때문에 모든 섹션의 뉴스를 카카오톡으로 전송하고자 합니다.섹션이 많아 하나씩 값을 넣기가 번거로우므로 반복하여 글을 이용하여 편리하게 필요한 결과를 만들어 냅니다.

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 9
:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 10
:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 11

맨 앞에 파란색 박스 안에 내용물을 추가했을 뿐이에요section에 들어가는 섹션의 이름을 section_list라고 하는 목록으로 만든 다음 해당 목록의 값을 반복적으로 글을 통해 하나씩 반영하는 것입니다.나머지 부분은 다 똑같아요.상기 코드가 이 미니프로젝트의 최종결과코드입니다.해당 코드를 실행하면 모든 섹션의 뉴스 기사가 카카오톡으로 전송되는 것을 확인할 수 있습니다.4. 리뷰 및 보완할 부분 파이썬과 뉴스 기사를 크롭하는 방법에 대해 확실하게 공부하기 위해 시작한 내용입니다.직접 어떤 결과물을 만들어 내는 것만큼 확실히 정리되는 방법은 없는 것 같아요.중간중간에더보완하거나추가하고싶은부분이있었는데,그런부분까지반영하고포스팅을하려니너무시간이늦고느슨해지는것같아서일단완성된내용을기록했습니다.지금까지 생각해 왔던 내용 중 추가로 보완해야 할 부분은

  1. 각 섹터별로 섹터 메인 링크 붙여두기
:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 12

현재는 나의 ‘네이버 뉴스메인 바로가기’를 클릭하시면 네이버 뉴스메인으로 이동합니다.그런데 헤더에 IT과학부분이나 하단에 Everydat_Navernews_Crawler 부분을 클릭을 해도 네이버 뉴스메인으로 이동이 됩니다.굳이 같은 링크를 여러 군데 걸어둘 필요는 없기 때문에 일단 제 네이버 뉴스메인으로 가지 말고 IT과학메인으로 가겠다는 식으로 각 섹터메인으로 이동하도록 링크를 바꿀 예정입니다.

2. 다른 템플릿 형식도 이용한다.사실 네이버 뉴스 메인을 보시면 섹터별로 가장 메인 뉴스는 이미지 파일에 링크가 걸려 있는 뉴스입니다.

:네이버 뉴스를 나에게 카톡으로 보내는 [미니프로젝트] 카카오 오픈 API 13

이 부분은 html의 태그패스가 옆의 리스트 형식의 뉴스 기사와 조금 다르지만, 간단하게 함수에 링크를 가져오기 위해서 저 부분을 제외시켰습니다.그래도 그 뉴스를 버릴 수 없기 때문에, 그 뉴스의 내용을 가져오는 부분을 추가할 생각입니다.섹션별로 하나의 뉴스 기사이므로 “메시지 형식의 템플릿”을 이용하여 뉴스 본문의 내용을 메시지에 넣도록 구성해 볼 예정입니다.

일단 생각나는 부분은 이 두 가지인데 혹시 게시물을 읽으면서 이런 부분도 추가됐으면 좋겠다. 이런 게 있으면 댓글로 알려주시면 감사하겠습니다!End _ v . 12020 . 12 . 08 ~ 2020 . 12 . 11