프로그래밍/파이썬

[Python] 네이버 뉴스기사를 텔레그램 채팅방에 전송하기

퀀트매니아 2022. 12. 30. 22:51
728x90

네이버 뉴스기사를 텔레그램 채팅방에 전송하기


안녕하세요. 오늘은 네이버에서 뉴스기사를 검색하여 해당 뉴스의 제목과 URL을 텔레그램 채팅방에 전송하는 코드를 작성하는 방법을 소개해드리려고 합니다.

네이버 뉴스기사를 검색하여 나온 URL 활용하기

 

네이버 뉴스기사 검색


네이버 뉴스에서 검색한 URL을 이용하여 원하시는 내용의 뉴스 제목과 URL을 텔레그램 채팅방에 전송하는 코드를 작성해 보겠습니다. 예시로, 미국주식 관련 데일리 뉴스를 올려주시는 김영필 기자님의 뉴스를 크롤링하는 코드를 작성해 보겠습니다.

 

네이버 뉴스 URL


URL을 자세히 보시면 'query=' 뒷부분에 검색어를 넣는다면 해당 키워드로 뉴스를 검색하는 것을 알 수 있습니다. 아래 코드에서 해당 부분에 원하시는 검색어를 넣으셔서 활용하시면 되겠습니다.

사용 라이브러리


아래는 이번 코드를 작성할 때 사용한 라이브러리들입니다.

pip install requests
pip install beautifulsoup4
pip install python-telegram-bot

 

전체 코드


아래는 전체 코드입니다. 토큰과 아이디 값을 입력하시면 채팅방에 바로 전송해보실 수 있습니다. count 변수에 출력되길 원하시는 뉴스 URL의 개수를 입력하시면 원하시는 기사 개수만큼 출력하실 수 있습니다.

import  requests
import  telegram
from  bs4  import  BeautifulSoup


def send_news_links():
    """네이버 뉴스 링크를 텔레그램 채팅방으로 전송"""

    # 출력할 기사 개수
    count = 3

    # 네이버 뉴스 URL query= 부분에 원하시는 검색어를 넣으시면 됩니다
    url = f'https://search.naver.com/search.naver?where=news&query=%EA%B9%80%EC%98%81%ED%95%84%EC%9D%98%203%EB%B6%84%20%EC%9B%94%EC%8A%A4%ED%8A%B8%EB%A6%AC%ED%8A%B8&sort=1&sm=tab_smr&nso=so:dd,p:all,a:all'

    # html 문서 파싱
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')

    # 뉴스 제목 추출
    news_titles = soup.select('a.news_tit')
    titles = []

    for i in range (0, count):
        titles.append(news_titles[i].get('title'))

    # 네이버 뉴스 링크 추출
    news_links = soup.select('a.info')
    links = []

    for i in range(0, count * 2):
        if i % 2 == 0:
            continue # 신문사 URL 제외
        links.append(news_links[i].get('href'))

    # 최종 메세지 작성
    total_msg = ""
    for i in range(0, count):
        total_msg = total_msg + titles[i] + "\n"
        total_msg = total_msg + links[i] + "\n"

    #토큰을 변수에 저장
    bot_token = '토큰값을 넣어주시면 됩니다'
    tel_bot = telegram.Bot(token = bot_token)

    user_id = '아이디값을 넣어주시면 됩니다'

    tel_bot.send_message(chat_id=user_id, text=total_msg)


if  __name__  ==  '__main__':

    send_news_links()

 

텔레그램 전송 테스트


위에 코드를 실행하시면 아래와 같이 메시지가 전송이 됩니다.

코드 실행 결과


맨 처음의 네이버 검색결과 페이지와 텔레그램 채팅방의 뉴스 내용이 동일하게 나오는 것을 보실 수 있습니다.

마무리...


오늘은 텔레그램 채팅방에 원하는 뉴스기사를 검색하여 URL을 전송하는 코드를 작성해 보았습니다. 다음 포스팅에서도 파이썬을 활용하여 작성할 수 있는 다양하고, 유용한 코드들을 소개해드리는 시간으로 찾아뵙겠습니다. 감사합니다.

728x90