12|动手实战:挑选后生成简报
叶伟民
你好,我是叶伟民。
上一节课我们完成了项目环境搭建,完成了代码主干,设置了任务计划以每天运行脚本。
这一节课我们将读取元数据,抓取新闻内容,对新闻进行摘要,翻译标题,翻译全文内容,最后整合成更方便用户阅读查看的简报,然后自动打开简报。
我们先回到 feed.py 文件,把最后两行代码删除掉。
if __name__ == "__main__":
新闻列表 = 获取数据()
所需要的类
另外我们需要新建一个 py 文件来声明我们所需要的类,我们将这个 py 文件命名为新闻.py,然后添加以下代码。
import json
class 新闻:
def __init__(self):
self.元数据 = 元数据()
self.新闻内容 = None
self.新闻内容_中文翻译 = None
self.摘要 = None
def set_元数据(self, 元数据):
self.元数据 = 元数据
def set_新闻内容(self, 新闻内容):
self.新闻内容 = 新闻内容
def set_新闻内容_中文翻译(self, 新闻内容_中文翻译):
self.新闻内容_中文翻译 = 新闻内容_中文翻译
def set_标题_中文翻译(self, 标题_中文翻译):
self.元数据.标题_中文翻译 = 标题_中文翻译
def set_摘要(self, 摘要):
self.摘要 = 摘要
class 新闻Encoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, 新闻):
return {"元数据": json.loads(json.dumps(obj.元数据, cls=元数据Encoder)), "新闻内容": obj.新闻内容,"摘要": obj.摘要}
return super().default(obj)
class 元数据:
def __init__(self):
self.标题 = None
self.标题_中文翻译 = None
self.作者 = None
self.创建日期 = None
self.url = None
def set_标题(self, 标题):
self.标题 = 标题
def set_标题_中文翻译(self, 标题_中文翻译):
self.标题_中文翻译 = 标题_中文翻译
def set_作者(self, 作者):
self.作者 = 作者
def set_创建日期(self, 创建日期):
self.创建日期 = 创建日期
def set_url(self, url):
self.url = url
class 元数据Encoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, 元数据):
return {"标题": obj.标题,"标题_中文翻译": obj.标题_中文翻译, "作者": obj.作者, "创建日期": obj.创建日期, "url": obj.url}
return super().default(obj)
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
0/2000
1. 本节课的主要内容是读取元数据,抓取新闻内容,对新闻进行摘要,翻译标题和全文内容,最后整合成用户阅读查看的简报。
2. 需要新建一个名为`新闻.py`的文件,并在其中声明所需的类,包括`新闻`和`元数据`。
3. 实现获取元数据的函数,用于生成元数据类的实例并赋值。
4. 根据元数据过滤新闻,筛选出今天的新闻。
5. 定义抓取新闻内容的函数,用于爬取和解析网页。
6. 实现对新闻文本进行摘要的函数,包括按长度划分文本和文本摘要。
7. 编写机器翻译代码,包括翻译成中文和对长文本进行翻译。
8. 生成每日简报的函数,包括生成每日简报的HTML代码和打开每日简报的功能。
9. 整合工作流,将获取数据、过滤、抓取、翻译、生成简报等功能整合成一个工作流程。
10. 运行程序,通过`feed.bat`文件运行整合后的工作流程,生成每日新闻简报。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《RAG 系统实战课 》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。