최신뉴스 크롤링하기
네이버 블로그 뉴스에서 특정 키워드로 검색한 최신뉴스를 크롤링하여 최신뉴스의 제목과 링크를 받고자 한다.
작업은 비주얼스튜디오코드에서 한다.
먼저 필요한 라이브러리를 임포트해준다
크롤링하기 위한 URL주소는 네이버뉴스에서 로컬크리에이터로 검색한 페이지의 URL 주소를 확인한다.

URL주소를 보면 query 앞부분까지 주소는 동일하고, 뒷부분만 키워드에 따라 변경되는 것을 알 수 있다.
따라서 query=까지의 주소는 그대로 사용하고,
키워드는 변수로 받아서 사용할 수 있게 한다.
https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query=키워드
f-string를 사용하여 {keyword}를 변수로 받게 한다.
f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}'
다음과 같이 keyword와 URL주소를 설정한다.
그리고 html을 받아와서 soup 객체로 변환한다.

다음에는 네이버뉴스 제목에서 우클릭 후 검사를 눌러서 개발자도구를 연다.
개발자도구에서 html요소가 어디에 있는지 확인한다.
뉴스기사 제목과 링크는 a태그, class는 news_tit에 있는 것을 확인할 수 있다.

select를 이용하여 new_fit에 있는 전체 요소들을 받아온다.
그럼 10개의 뉴스기사가 추출되어 나타난다.

news_title에서 반복문을 통해 제목과 링크만 추출해오면 된다.
텔레그램에 봇 생성하기
크롤링한 최신뉴스를 텔레그램 메시지로 받고자 한다.
텔레그램에 봇을 생성하여 크롤링한 결과를 자동으로 메시지 전송이 되게 한다.
텔레그램을 처음 사용하는 경우에는 텔레그램 사이트에 접속하여 설치프로그램을 다운로드한다.
텔레그램 계정을 만든 후에 데스크탑 또는 모바일앱으로 실행한다.
텔레그램을 실행하고, 검색창에 botfather로 검색한다.
검색 결과 BotFather로 처음에 나타난 것으로 선택한다.

다음과 같이 창이 나타나면서, start 버튼이 생성된다.
start 버튼을 클릭하여 실행한다.

start버튼을 클릭하면 다음과 같이 채팅창이 만들어진다.

대화창에 /newbot을 기입하고 메시지를 보낸다.

그럼 새로운 봇이 생성된다.
다음으로는 봇 이름을 넣어준다.
newsbot으로 해 보겠다. 각자 봇이름을 설정하면 된다.

다음 사용자 이름을 설정한다. 사용자 이름은 _bot로 끝나게 설정해야 한다.
latestnewsinfo_bot로 해 보겠다.

그럼 봇 생성이 완료된다.
대화창에 다음과 같이 나타난 부분(t.me/latestnewsinfo_bot)을 클릭한다.
그리고 start가 나타나면 클릭하여 시작한다.


다음으로는 https://api.telegram.org/bot{YourBOTToken}/getUpdates 주소로 페이지를 열어준다.
{YourBOTToken} 부분에는 BotFather에 마지막 창에 나타난 Use this token to access the HTTP API 아래 있는 것을 넣어주면 된다.

다음과 같이 나타나면 생성된 봇에 아무런 메시지를 보내고 다시 페이지를 새로고침 해준다.

새로고침 후에 나타나는 id부분이 chat_id 부분이기 때문에 확인을 해둔다.
텔레그램으로 뉴스정보 메시지 받기
네이버에서 크롤링한 최신뉴스 제목과 링크를 텔레그램에서 생성한 봇을 이용하여 자동으로 메시지를 보내도록 해본다.
먼저 텔레그램에서 자동으로 메시지를 보내는 테스트를 해 본다.
token에는 BotFather의 마지막 창에 나타난 Use this token to access the HTTP API의 부분을 넣어준다.
chat_id에는 위 페이지의 id부분을 넣어준다.
그리고 실행을 해 보면 테스트 메시지가 보내진 것을 확인할 수 있다.

그럼 크롤링한 뉴스기사를 메시지 보내는 것으로 다시 설정해 본다.
크롤링한 뉴스 제목과 링크를 title_list를 만들어서 하나의 리스트에 담아준다.
하나의 메시지로 보내기 위해서 리스트의 내용을 하나로 합쳐준다.
그리고 텔레그램 보낸 부분을 아래 넣어준다.
send_telegram_message(message)에 위에서 리스트를 하나로 합친 message를 넣어준다.
뉴스기사 제목과 링크 10개가 텔레그램 메시지로 보내진 것을 확인할 수 있다.
정기적으로 최신뉴스 알림 받기
매일 아침 최신뉴스를 텔레그램 메시지로 받는 것을 자동화하여 보고자 한다.
Bios 설정으로 컴퓨터를 자동으로 켜고, 작업스케줄러로 메시지를 보낸다음 자동으로 컴퓨터가 꺼지도록 한다.
컴퓨터를 자동으로 켜기 위해서 BIOS 설정을 수정해야 한다.

BIOS 설정의 POWER 설정창에서 Resume by Alarm을 Enabled로 활성화 해 준다.

그럼 시간 설정이 가능하게 된다.
매일 실행하게 하는 것으로 day는 0으로 설정한다.
그리고 hour는 9시 minute는 5, second는 0으로 설정한다.
설정이 끝나면 변경한 내용을 저장하고 나온다.
9시 5분에 컴퓨터가 켜지고, 9시 10분에 크롤링한 최신뉴스 메시지 보내기 프로그램이 실행되도록 한다.
윈도우 작업스케줄러를 실행한다.
폴더에서 우클릭하여 기본 작업 만들기를 실행한다.
기본 작업 만들기에서 이름을 설정한다.
트리거에서 작업 주기를 설정한다.
시작 시간을 구체적으로 설정한다.
9시 15분에 프로그램이 작동하도록 설정한다.
어떤 동작을 수행할 것인지 설정한다.
프로그램이 시작되는 것으로 설정한다.

프로그램 시작을 위한 설정은 3가지를 설정한다.
첫번째는 프로그램/스크립트에는 파이썬이 설치되어 있는 경로를 넣어준다.
찾아보기를 통해 내문서-사용자-아나콘다에 있는 파이썬 실행파일을 경로로 설정한다.


두번째 인수추가에는 3.텔레그램으로 뉴스정보 메시지 받기에서 만든 파이썬 파일명을 넣어준다.
세번재 시작위치에는 프로그램 파일이 있는 폴더 경로로 설정해 준다.
설정이 다 되면 마침을 한다.

작업파일이 생성된 것을 확인할 수 있다.
테스트를 해 볼려면 작업파일을 선택하고 우측 작업의 선택한 항목에서 실행을 하면 된다.
다음과 같이 알림이 오는 것을 확인할 수 있다.

최신뉴스를 매일 알림 받도록 해 보았다.
이를 활용하면 뉴스 등 필요한 정보를 수집하여 텔레그램의 알림을 받도록 할 수 있다.
각자 필요한 정보를 가지고 활용하시길 바란다.