基于Scrapy与ChatGLM3构建AI信息聚合系统:从爬虫到智能摘要的工程实践 1. 项目概述一个AI信息聚合器的诞生每天早晨当我打开电脑准备开始一天的工作时总会面临一个相同的问题AI领域又发生了什么新的模型、突破性的论文、重要的行业动态、实用的工具更新……信息像潮水一样涌来但散落在各个角落——学术网站、科技媒体、开发者社区、个人博客。我需要花上至少半小时像大海捞针一样去筛选、阅读、整理。这不仅是我的痛点我相信也是许多AI从业者、研究者、创业者乃至爱好者的共同困扰。于是“每日AI速递”这个想法诞生了。它不是一个简单的新闻聚合器而是一个由从业者为自己和同行打造的、高度定制化的信息筛选与精炼系统。它的核心目标非常明确在每天早晨用最短的时间比如5-10分钟获取过去24小时内AI领域最值得关注的、经过初步解读的精华信息。这不仅仅是节省时间更是为了建立一个持续、高效的知识摄入管道避免在信息爆炸中迷失方向确保自己始终站在技术浪潮的前沿。这个项目看似简单——不就是收集信息然后发出来吗但深入下去你会发现其中涉及信息源的可靠性判断、自然语言处理NLP技术的应用、信息摘要与分类的准确性、以及最终呈现的人性化设计等一系列挑战。它考验的不仅是技术实现能力更是对AI生态的深刻理解和对信息价值的精准判断力。接下来我将详细拆解我是如何从零构建这个系统的包括核心设计思路、技术选型、实操步骤以及一路踩坑积累的经验。2. 核心设计思路与架构选型构建一个可持续、高质量的信息聚合系统首要任务是明确设计原则。我为自己设定了几个铁律信源优先质量大于数量绝不为了凑数而收录低质量或营销性质过重的内容。信源必须权威、一手或经过社区验证。机器辅助人工校准利用自动化工具完成繁重的收集、初筛和摘要工作但关键信息的筛选、分类和最终表述必须有人也就是我的参与和判断。价值导向而非流量导向内容选择的标准是对“构建认知”和“指导实践”是否有帮助而不是单纯追求热点或耸人听闻。格式固定体验一致每日输出的格式需要高度结构化让读者形成阅读预期和习惯快速定位自己关心的部分。基于这些原则我设计了系统的核心工作流它主要分为四个阶段信息抓取与聚合 - 初步过滤与摘要 - 人工审核与精编 - 格式化发布。在技术选型上我遵循“成熟、高效、可控”的原则爬虫与调度框架选用Scrapy而非简单的requests库。因为我们需要面对的是多个结构各异的网站ArXiv、Hugging Face、TechCrunch等Scrapy的框架化设计能更好地管理爬取规则Spiders、处理反爬策略、以及进行数据清洗Item Pipeline。任务调度则使用APScheduler它能以Cron表达式的方式精准控制每天定时启动爬取任务。核心NLP引擎摘要生成是核心。我放弃了早期尝试的简单规则提取如提取首段也评估了通用的大型语言模型API如GPT-4。最终选择在本地部署ChatGLM3-6B或Qwen-7B这类中等规模的、经过指令微调的开源模型。原因有三一是成本可控无需为API调用付费二是数据隐私所有处理在本地完成三是可定制性我可以针对AI论文、技术博客等特定文体进行进一步的Prompt工程优化让生成的摘要更专业。信息存储与处理使用SQLite作为轻量级数据库存储爬取到的原始文章URL、标题、发布时间、原始内容等、处理后的摘要、分类标签以及发布状态。它的单文件特性非常适合这个个人项目。中间的数据处理如文本清洗、关键词提取用Pandas配合一些NLP库如jieba用于中文分词nltk或spacy用于英文处理来完成。发布渠道为了最大化覆盖和方便性我设计了多端发布。核心是一个自动生成的Markdown文件它结构清晰便于存档和二次加工。同时利用自动化脚本将Markdown内容同步发布到GitHub仓库用作公开归档和版本管理、Telegram频道适合移动端快速阅读以及个人博客用于长期沉淀和搜索。整个架构可以看作一个轻量级的、高度自动化的“主编系统”我扮演的是最终审核与定稿的“主编”角色。3. 实操流程与核心环节实现下面我以“2026.03.19”这一期为例拆解从无到有的完整生成过程。假设现在是2026年3月19日早晨7点。3.1 阶段一信源配置与自动化抓取我维护了一个sources.yaml配置文件里面定义了所有需要监控的信源及其爬取规则sources: - name: ArXiv CS.AI url: http://arxiv.org/list/cs.AI/recent type: rss # 实际爬取仍用Scrapy这里标识内容类型 priority: 1 parser: arxiv_parser - name: Hugging Face Blog url: https://huggingface.co/blog type: html priority: 1 parser: hf_blog_parser - name: TechCrunch AI url: https://techcrunch.com/category/artificial-intelligence/ type: html priority: 2 parser: techcrunch_parser - name: Lilian Wengs Blog url: https://lilianweng.github.io/ type: html priority: 1 parser: generic_blog_parser - name: Reddit r/MachineLearning url: https://www.reddit.com/r/MachineLearning/.json type: api priority: 3 parser: reddit_parser注意配置优先级priority很重要。优先级1的信源如ArXiv、顶级团队博客是必看项优先级2的行业新闻选择性收录优先级3的社区讨论如Reddit主要用来捕捉热点和实用反馈不一定每日都包含。每天早晨6:30由APScheduler触发Scrapy爬虫集群。每个爬虫Spider负责一类信源按照配置的解析规则Parser抽取标题、链接、发布时间、作者和正文内容或摘要然后存入SQLite数据库的raw_articles表中。实操心得1应对反爬与内容格式化TechCrunch等媒体网站反爬策略较严需要在Scrapy中合理设置DOWNLOAD_DELAY、User-Agent轮换甚至使用中间件处理JavaScript渲染初期我用Splash后来换成了更轻量的requests-html进行少量页面的动态渲染。对于ArXiv直接解析其RSS源或列表页更稳定。抓取到的正文HTML需要彻底清洗我用BeautifulSoup配合一系列自定义规则来移除导航栏、广告、评论等无关元素只保留核心文章内容。3.2 阶段二智能摘要与关键信息提取所有昨日2026.03.18的新文章抓取完毕后系统会启动处理流水线。核心步骤是摘要生成。我并非将整篇长文扔给模型而是先进行预处理文本清洗去除多余的换行符、空格将HTML实体转换为正常字符。关键句抽取可选对于极长的文章如某些技术报告我会先用TextRank或BERT-ext等算法抽取3-5个关键句作为生成摘要的“素材”以降低模型输入长度和幻觉风险。构造Prompt这是影响摘要质量的关键。我设计了一个结构化的Prompt模板你是一个AI领域的技术编辑请为以下文章生成一段简洁、准确的中文摘要要求如下 1. 长度控制在150字以内。 2. 必须包含核心问题、方法创新点、关键结果/结论。 3. 如果文章介绍了新模型或工具请指出其名称和主要特点。 4. 语言风格客观、精炼、信息密度高。 5. 避免使用“本文介绍了”、“作者认为”等套话直接陈述事实。 文章标题[文章标题] 文章正文部分[文章正文的前500-800个字符确保包含核心信息] 请开始生成摘要这个Prompt引导模型聚焦于技术细节而非泛泛而谈。我将清洗后的文本或关键句和标题填入Prompt调用本地部署的ChatGLM3-6B模型进行批量处理。生成的结果存入processed_articles表与原始文章关联。实操心得2摘要模型的调优与成本权衡直接使用原生ChatGLM3生成摘要有时会过于笼统。我尝试用几十篇高质量AI论文和博客的“标题-正文-人工摘要”数据对模型进行LoRA (Low-Rank Adaptation) 微调让模型更适应这种“技术精华提取”的任务。微调后摘要的专业性和准确性有明显提升。如果不想微调精心设计的Prompt也能达到不错的效果。务必在本地测试不同Prompt的效果选择最稳定的一个。3.3 阶段三人工审核、分类与精编这是整个流程中不可替代的“灵魂”环节。早晨7:15我会收到一份系统生成的“候选清单”是一个包含了所有待处理文章的简单网页或Markdown预览每条记录包含标题、来源、自动摘要、原文链接。我的工作就是快速浏览这份清单大约15-20分钟执行以下操作价值判断根据我的经验判断这篇文章是否具有普遍参考价值。一篇非常狭窄的子领域论文可能只适合特定研究者而一篇关于Transformer推理优化的通用性文章则价值更高。我会淘汰掉价值不高或质量存疑的条目。分类打标我为每篇文章打上1-2个分类标签例如研究·论文、工程·工具、行业·动态、观点·博客、资源·数据集。这有助于后续的结构化呈现。摘要润色模型的摘要可能存在事实错误、遗漏重点或表述生硬。我会直接修改摘要文本使其更准确、流畅。有时甚至会重写。提炼亮点对于特别重要的文章我会在摘要后面手动添加一个“亮点”或“解读” bullet point用一两句话点出它为什么重要、对谁有用、可能的影响是什么。这是“速递”超越普通摘要的价值所在。例如对于一篇关于“新型高效注意力机制”的论文系统摘要可能只说了“本文提出了一种新的注意力机制在保持性能的同时降低了计算复杂度”。我可能会润色为“Google团队提出‘FlashAttention-3’机制通过更激进的内存读写优化在训练万亿参数模型时将注意力计算速度再提升40%。亮点直接降低大模型训练成本对所有从事模型缩放的研究者和工程师都有重要参考价值。”3.4 阶段四结构化生成与多端发布审核编辑完成后我点击“生成”按钮后端脚本会根据审核后的数据填充到一个Jinja2模板中生成最终的Markdown文档。模板决定了每日速递的固定结构# 2026.03.19 | 每日AI速递 **本期概览**共筛选收录8条资讯涵盖3篇前沿论文、2个新工具发布、2则行业动态及1篇深度观点。 ## 研究·论文 (3) ### 1. [论文标题] - *来源ArXiv* **摘要** 经过润色后的模型生成摘要 **亮点/解读** 我手动添加的点评 [[原文链接]](URL) ### 2. [另一篇论文标题] - *来源ArXiv* ... ## 工程·工具 (2) ### 1. [新工具发布] - *来源Hugging Face Blog* ... ## 行业·动态 (2) ... ## 观点·资源 (1) ... --- *本期速递由自动化系统采集生成经人工审核编辑。欢迎反馈与建议。*这个Markdown文件就是最终成品。随后自动化脚本会将其重命名为2026-03-19-AI-Digest.md存入本地和GitHub的特定仓库。调用Telegram Bot API将Markdown内容Telegram支持部分Markdown语法发布到预设的频道。通过SSH或API将内容同步更新到我的个人博客系统如Hugo、Hexo的对应位置触发博客重建。至此一份“每日AI速递”就生产并分发完毕。读者在早餐时间就能在Telegram上看到也可以稍后在博客或GitHub上阅读更详细的存档。4. 常见问题、避坑指南与优化方向在运行这个系统的几个月里我遇到了不少问题也总结了一些优化经验。4.1 信源管理问题问题某些博客更新不规律或网站改版导致爬虫失效。解决方案建立爬虫健康检查机制。每天抓取完成后记录每个信源的成功/失败状态。对于连续失败的信源发送通知给我。同时定期如每月审查信源列表加入社区推荐的新优质来源如某知名研究员新开的Substack淘汰已失效或质量下降的来源。4.2 摘要质量问题问题模型摘要有时会出现“幻觉”编造文中没有的信息或抓不住真正的重点。解决方案输入优化确保喂给模型的“正文前缀”确实包含了核心论点和方法。对于结构清晰的论文直接提取“摘要”和“引言”部分往往比截取正文开头更有效。Prompt工程在Prompt中明确要求“严格基于提供文本生成不得添加文中未提及的信息”并加入“如果文中未明确提及请勿推测”的指令。人工兜底这正是人工审核环节存在的核心意义之一。任何摘要都必须经过人眼核对。我养成了快速扫描原文关键部分摘要、结论、图表标题来验证摘要准确性的习惯。4.3 分类与标签体系问题早期分类标签过于随意导致“工程·工具”类下内容庞杂从编译器优化到小应用都有。解决方案细化标签体系。我将“工程·工具”进一步拆分为“基础设施”如推理框架、训练库、“开发工具”如调试器、可视化工具和“应用实例”如基于某个API搭建的演示。同时引入“热度”标签如“ 热议”标记在Reddit等社区讨论度高的内容。一个清晰、多维度的标签体系能让速递的长期存档价值大大提升。4.4 可持续性与时间投入问题人工审核环节每天需要15-30分钟能否进一步自动化解决方案与思考完全自动化目前不现实因为价值判断需要人的认知。但我做了以下优化来减轻负担优先级排序系统根据信源优先级、文章长度、标题关键词如出现“breakthrough”, “new SOTA”, “major release”等初步打分在审核清单中将高优先级项目置顶。摘要预筛选训练一个简单的二分类模型基于BERT判断自动摘要的质量是否流畅、信息量是否充足将质量极差的条目标记出来我可以选择直接跳过或重点修改。模板化点评对于常见类型的文章如“新模型发布”我预制了一些点评模板审核时只需稍作修改即可填入提高了效率。4.5 未来优化方向这个系统还有很大的进化空间个性化推荐在读者端可以根据其历史点击/阅读偏好在推送时对条目进行排序或轻量级标注。知识图谱关联将每日收录的论文、工具与过往速递中的相关内容进行关联。例如当介绍一篇改进Transformer的论文时可以自动链接到之前介绍的相关基础论文或优化工具。音频摘要利用TTS技术生成5分钟的当日速递音频版适合通勤时收听。社区协作建立一个小范围的专家读者群他们可以提交自己发现的重要信息或对摘要提出修正变“我一个人看”为“一群人的眼睛”进一步提升覆盖面和准确性。构建并运行“每日AI速递”系统对我来说其价值远超省下的那半小时阅读时间。它强迫我建立了一套系统化、结构化的信息处理流程锻炼了我快速甄别信息价值的能力。更重要的是它让我从被动的信息接收者转变为主动的信息策展人和梳理者。输出的过程是更深层次的消化和理解。如果你也深感信息过载不妨尝试打造一个属于自己的“信息滤网”无论是用我这种半自动化的方式还是从简单的RSS订阅手动整理开始。在这个时代管理信息的效率直接决定了你认知升级的速度。