From d996a46768bdb3cd60098e0841219b175bd8acbf Mon Sep 17 00:00:00 2001 From: Changhua Date: Sat, 15 Apr 2023 19:08:44 +0800 Subject: [PATCH] Impl get news --- func_news.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 52 insertions(+) create mode 100644 func_news.py diff --git a/func_news.py b/func_news.py new file mode 100644 index 0000000..1780ad1 --- /dev/null +++ b/func_news.py @@ -0,0 +1,51 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import re +import logging +import time +from datetime import datetime + +import requests +from lxml import etree + + +class News(object): + def __init__(self) -> None: + self.LOG = logging.getLogger(__name__) + self.week = {0: "周一", 1: "周二", 2: "周三", 3: "周四", 4: "周五", 5: "周六", 6: "周日"} + self.headers = { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0"} + + def get_important_news(self): + url = "https://www.cls.cn/api/sw?app=CailianpressWeb&os=web&sv=7.7.5" + data = {"type": "telegram", "keyword": "你需要知道的隔夜全球要闻", "page": 0, + "rn": 1, "os": "web", "sv": "7.7.5", "app": "CailianpressWeb"} + try: + rsp = requests.post(url=url, headers=self.headers, data=data) + data = json.loads(rsp.text)["data"]["telegram"]["data"][0] + news = data["descr"] + timestamp = data["time"] + ts = time.localtime(timestamp) + weekday_news = datetime(*ts[:6]).weekday() + except Exception as e: + self.LOG.error(e) + return "" + + weekday_now = datetime.now().weekday() + if weekday_news != weekday_now: + return "" # 旧闻,观察发现周二~周六早晨6点半左右发布 + + fmt_time = time.strftime("%Y年%m月%d日", ts) + + news = re.sub(r"([\u2460-\u2473])", r"\n\1", news) + fmt_news = "".join(etree.HTML(news).xpath(" // text()")) + fmt_news = re.sub(r"周[一|二|三|四|五|六|日]你需要知道的", r"", fmt_news) + + return f"{fmt_time} {self.week[weekday_news]}\n{fmt_news}" + + +if __name__ == "__main__": + news = News() + print(news.get_important_news()) diff --git a/requirements.txt b/requirements.txt index 5deb5ba..a1f2776 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ fastapi +lxml openai pandas pyyaml