import streamlit as st import requests import xml.etree.ElementTree as ET import time RSS_FEED_URL = "http://www.yonhapnewstv.co.kr/category/news/headline/feed/" def get_news_from_rss(): """연합뉴스TV RSS 피드에서 헤드라인 뉴스를 가져옵니다.""" try: response = requests.get(RSS_FEED_URL) if response.status_code == 200: root = ET.fromstring(response.content) items = root.findall(".//item") news_list = [] for item in items: title = item.find("title").text link = item.find("link").text news_list.append({"title": title, "url": link}) return news_list except Exception as e: print(f"Error fetching RSS feed: {e}") return [] def display_news(): """RSS 피드에서 뉴스를 가져와 요약 및 표시합니다.""" news_items = get_news_from_rss() if not news_items: st.warning("뉴스를 가져오는데 실패했습니다.") return for item in news_items: original_title = item.get('title', '') if not original_title: continue url = item.get('url', '#') # 기사 URL이 없으면 기본 링크는 '#' st.markdown(f'''
''', unsafe_allow_html=True) def main(): """앱 메인 함수""" st.set_page_config(layout="wide") st.markdown(""" """, unsafe_allow_html=True) display_news() # 새로고침 타이머 설정 if 'last_run' not in st.session_state: st.session_state.last_run = time.time() current_time = time.time() if current_time - st.session_state.last_run >= 3600: # 1시간 경과 st.session_state.last_run = current_time st.rerun() # 새로고침 if __name__ == "__main__": main()