[파이썬] 최신뉴스 텔레그램 알림봇 만들기

2025년 3월 9일

Local Academy

댓글 남기기


최신뉴스 크롤링하기

네이버 블로그 뉴스에서 특정 키워드로 검색한 최신뉴스를 크롤링하여 최신뉴스의 제목과 링크를 받고자 한다.


작업은 비주얼스튜디오코드에서 한다.
먼저 필요한 라이브러리를 임포트해준다

라이브러리 임포트

크롤링하기 위한 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 받아서 soup 객체 변환

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

html 요소 확인

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

select로 요소 추출

news_title에서 반복문을 통해 제목과 링크만 추출해오면 된다.

반복문을 통해서 제목과 링크 추출

텔레그램에 봇 생성하기

크롤링한 최신뉴스를 텔레그램 메시지로 받고자 한다.
텔레그램에 봇을 생성하여 크롤링한 결과를 자동으로 메시지 전송이 되게 한다.


텔레그램을 처음 사용하는 경우에는 텔레그램 사이트에 접속하여 설치프로그램을 다운로드한다.
텔레그램 계정을 만든 후에 데스크탑 또는 모바일앱으로 실행한다.

텔레그램 설치

텔레그램을 실행하고, 검색창에 botfather로 검색한다.
검색 결과 BotFather로 처음에 나타난 것으로 선택한다.

텔레그램 botfather 검색

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

텔레그램 botfather 시작

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

텔레그램 botfather 시작 설정

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

텔레그램 botfather 생성

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

텔레그램 botfather 이름설정

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

텔레그램 botfather 봇생성

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

텔레그램 botfather 봇 시작
텔레그램 botfather 봇 시작2

다음으로는 https://api.telegram.org/bot{YourBOTToken}/getUpdates 주소로 페이지를 열어준다.

{YourBOTToken} 부분에는 BotFather에 마지막 창에 나타난 Use this token to access the HTTP API 아래 있는 것을 넣어주면 된다.

텔레그램 botfather 봇 시작3

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

텔레그램 botfather 봇 시작4
텔레그램 botfather 봇 시작4

새로고침 후에 나타나는 id부분이 chat_id 부분이기 때문에 확인을 해둔다.


텔레그램으로 뉴스정보 메시지 받기

네이버에서 크롤링한 최신뉴스 제목과 링크를 텔레그램에서 생성한 봇을 이용하여 자동으로 메시지를 보내도록 해본다.


먼저 텔레그램에서 자동으로 메시지를 보내는 테스트를 해 본다.

token에는 BotFather의 마지막 창에 나타난 Use this token to access the HTTP API의 부분을 넣어준다.
chat_id에는 위 페이지의 id부분을 넣어준다.
그리고 실행을 해 보면 테스트 메시지가 보내진 것을 확인할 수 있다.

텔레그램 botfather 봇 시작5
텔레그램 botfather 봇 시작5

그럼 크롤링한 뉴스기사를 메시지 보내는 것으로 다시 설정해 본다.
크롤링한 뉴스 제목과 링크를 title_list를 만들어서 하나의 리스트에 담아준다.
하나의 메시지로 보내기 위해서 리스트의 내용을 하나로 합쳐준다.

텔레그램 메시지 뉴스기사 크롤링 설정

그리고 텔레그램 보낸 부분을 아래 넣어준다.
send_telegram_message(message)에 위에서 리스트를 하나로 합친 message를 넣어준다.

텔레그램 메시지 보내기 설정

뉴스기사 제목과 링크 10개가 텔레그램 메시지로 보내진 것을 확인할 수 있다.

텔레그램 메시지 보내기 확인


정기적으로 최신뉴스 알림 받기

매일 아침 최신뉴스를 텔레그램 메시지로 받는 것을 자동화하여 보고자 한다.

Bios 설정으로 컴퓨터를 자동으로 켜고, 작업스케줄러로 메시지를 보낸다음 자동으로 컴퓨터가 꺼지도록 한다.


컴퓨터를 자동으로 켜기 위해서 BIOS 설정을 수정해야 한다.

BIOS 설정1

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

BIOS 설정2

그럼 시간 설정이 가능하게 된다.

매일 실행하게 하는 것으로 day는 0으로 설정한다.

그리고 hour는 9시 minute는 5, second는 0으로 설정한다.

설정이 끝나면 변경한 내용을 저장하고 나온다.

3

9시 5분에 컴퓨터가 켜지고, 9시 10분에 크롤링한 최신뉴스 메시지 보내기 프로그램이 실행되도록 한다.

윈도우 작업스케줄러를 실행한다.

작업스케줄러1 작업스케줄러2

폴더에서 우클릭하여 기본 작업 만들기를 실행한다.

작업스케줄러3

기본 작업 만들기에서 이름을 설정한다.

작업스케줄러4

트리거에서 작업 주기를 설정한다.

작업스케줄러5

시작 시간을 구체적으로 설정한다.

9시 15분에 프로그램이 작동하도록 설정한다.

작업스케줄러6

어떤 동작을 수행할 것인지 설정한다.

프로그램이 시작되는 것으로 설정한다.

작업스케줄러7

프로그램 시작을 위한 설정은 3가지를 설정한다.

첫번째는 프로그램/스크립트에는 파이썬이 설치되어 있는 경로를 넣어준다.

찾아보기를 통해 내문서-사용자-아나콘다에 있는 파이썬 실행파일을 경로로 설정한다.

작업스케줄러8
이 이미지는 대체 속성이 비어있습니다. 그 파일 이름은 9.jpg입니다
%EC%9E%91%EC%97%85%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC5

두번째 인수추가에는 3.텔레그램으로 뉴스정보 메시지 받기에서 만든 파이썬 파일명을 넣어준다.

작업스케줄러10

세번재 시작위치에는 프로그램 파일이 있는 폴더 경로로 설정해 준다.

작업스케줄러11

설정이 다 되면 마침을 한다.

작업스케줄러12

작업파일이 생성된 것을 확인할 수 있다.

작업스케줄러13

테스트를 해 볼려면 작업파일을 선택하고 우측 작업의 선택한 항목에서 실행을 하면 된다.

다음과 같이 알림이 오는 것을 확인할 수 있다.

작업스케줄러15


최신뉴스를 매일 알림 받도록 해 보았다.

이를 활용하면 뉴스 등 필요한 정보를 수집하여 텔레그램의 알림을 받도록 할 수 있다.

각자 필요한 정보를 가지고 활용하시길 바란다.

Tag :

댓글 남기기