rireki.area-hinan.au.com
!pip install feedgen
import datetime
import re
import requests
from bs4 import BeautifulSoup
from feedgen.feed import FeedGenerator
def get_mail(link):
r = requests.get(link)
r.raise_for_status()
soup = BeautifulSoup(r.content, "html.parser")
tag = soup.select_one("div.post__content")
text = tag.get_text(strip=True) if tag else ""
return text
JST = datetime.timezone(datetime.timedelta(hours=+9))
if __name__ == "__main__":
url = "https://x677d6m41c.execute-api.ap-northeast-1.amazonaws.com/Prod/api/dhs-get-disaster-data-html?prefCode=38000&areaCityCode=38202"
r = requests.get(url)
r.raise_for_status()
data = r.json()
fg = FeedGenerator()
fg.title("災害・避難情報")
fg.link(
href="https://rireki.area-hinan.au.com/detail?prefCode=38000&areaCityCode=38202"
)
fg.subtitle("愛媛県今治市")
fg.language("ja")
fg.updated(datetime.datetime.now(JST))
for i in data["disasterDataHtmlUrl"]:
fullDate = [int(j) for j in re.findall("\d+", i["fullDate"])]
pubDate = datetime.datetime(*fullDate).replace(tzinfo=JST)
fe = fg.add_entry()
fe.title(i["fullDate"])
fe.description(get_mail(i["url"]))
fe.published(pubDate)
fg.rss_file("rss.xml")
print(fg.rss_str(pretty=True).decode())