Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| import requests | |
| from bs4 import BeautifulSoup | |
| st.set_page_config(page_title="SMRJ 最新ニュース", layout="wide") | |
| def fetch_news(): | |
| """爬取 SMRJ 官方新聞列表""" | |
| url = "https://www.smrj.go.jp/news/index.html" | |
| headers = {"User-Agent": "Mozilla/5.0"} | |
| res = requests.get(url, headers=headers) | |
| res.encoding = "utf-8" | |
| soup = BeautifulSoup(res.text, "html.parser") | |
| news_items = soup.select("li.news-list__item")[:15] | |
| data = [] | |
| for item in news_items: | |
| date = item.select_one(".news-item__date") | |
| labels = item.select(".news-item__label") | |
| title = item.select_one(".news-item__text") | |
| data.append({ | |
| "日期": date.get_text(strip=True) if date else "", | |
| "分類": ", ".join([lbl.get_text(strip=True) for lbl in labels]) if labels else "", | |
| "標題": title.get_text(strip=True) if title else "" | |
| }) | |
| df = pd.DataFrame(data) | |
| return df | |
| # ---------------- Streamlit UI ---------------- | |
| st.title("📢 SMRJ 最新ニュース (前15件)") | |
| df = fetch_news() | |
| if df.empty: | |
| st.warning("⚠️ 無法取得資料,請稍後再試") | |
| else: | |
| st.dataframe(df, use_container_width=True) | |
| # CSV 下載 | |
| csv = df.to_csv(index=False, encoding="utf-8") | |
| st.download_button( | |
| label="📥 下載 CSV", | |
| data=csv, | |
| file_name="smrj_announcement.csv", | |
| mime="text/csv", | |
| ) | |
| st.caption("データ出典: 中小企業基盤整備機構 (SMRJ)") | |