문과생도 AI에서의 과제인 키워드를 크롤링한 결과물을 바로 텔레그램으로 받아보면 좋겠다는 생각으로 만들어보았다. 돈이 되는 경매, 부동산뉴스, 정책, 아파트실거래등 실시간으로 받아보면 좋을 것 같다. 이미 주식하는 사람들이 실시간 뉴스들 많이 이용하고 있으니…
챗봇이름를 정하면 주소와 API token이 나오고 , chat_id를 탐색하면 된다.
이거는 시키는대로 하면 되니, 어려움은 없다.
이미 키워드 크롤링하는 코딩이 있으니, 그것을 이용하고, 그 결과를 텔레그램에 보내면 된다.
아까 만든 Gradio UI에 텔레그램에 보내는 코딩을 접목한다.
최종 코딩결과는 다음과 같다.
import gradio as gr
from bs4 import BeautifulSoup
import requests
import json
# 텔레그램 봇 설정
bot_token = "ㅌㅌㅌㅌㅌ"
chat_id = "ㅌㅌㅌ"
def send_message(message):
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
data = {"chat_id": chat_id, "text": message}
try:
requests.post(url, data=data)
except requests.exceptions.RequestException as e:
print(f"Error sending message: {e}")
def fetch_and_send_news(keyword):
base_url = "https://search.naver.com/search.naver?where=news&query="
search_url = base_url + keyword
news_list = []
page = 1
while len(news_list) < 100:
url = f"{search_url}&start={page}"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
articles = soup.select("div.news_wrap.api_ani_send")
if not articles:
break
for article in articles:
date_info = article.select_one("span.info")
if date_info:
time_text = date_info.text
if "분 전" in time_text or "시간 전" in time_text or "오늘" in time_text or "1일 전" in time_text or "2일 전" in time_text:
title_element = article.select_one("a.news_tit")
title = title_element.get('title')
link = title_element['href']
news_list.append(f"{title}\n{link}")
if len(news_list) >= 100:
break
page += 10
news_string = "\n\n".join(news_list)
send_message(news_string) # Send the news list to Telegram
return news_string # Return the news list to display in Gradio
# Gradio 인터페이스 설정
iface = gr.Interface(
fn=fetch_and_send_news,
inputs=gr.Textbox(lines=2, placeholder="Enter Keywords for News Search..."),
outputs=gr.TextArea(label="News Results"),
title="Naver News Search and Telegram Notification",
description="Type keywords to search for news articles on Naver and send results to Telegram."
)
iface.launch()
결과물은 다음과 같다.
Insight
입력, 출력을 다양한 모습으로 조절가능하다
키워드를 부동산, 부동산정책, 경매, 아파트등 다양하게 넣어서 텔레그램으로 받아보자.
이것으로 응용할 수 있는게 많겠다.
일정시간마다 결과를 업데이트하는 기능추가등…
카카오톡, 네이버블로그, 이메일등으로 확장
#문과생도AI#