随着互联网信息量的不断增长,如何高效地获取自己关注的网站最新内容成为许多用户关心的问题。尽管RSS和Atom订阅作为信息聚合的重要工具已经存在了二十多年,但很多网站仍只提供文章摘要或者根本不提供订阅源,这大大限制了用户阅读体验和信息获取的便捷性。采用自托管的RSS阅读器FreshRSS,不仅可以集中管理众多订阅,还能通过其强大的网页抓取功能,自定义并生成类似全内容的RSS/Atom订阅,极大地提升信息获取的质量和效率。本文将详细介绍使用FreshRSS创建任意网页全内容订阅源的方法,助你打造个性化精准的信息订阅体验。 阅读订阅源多年,笔者亲身感受到摘要订阅的诸多不便。最明显的缺陷在于无法离线完整阅读,尤其是在网络不稳定或旅行途中,往往只能看标题或片段,极大影响阅读连贯性和深度。
Full-text订阅则完美解决了这一问题,将完整文章内容推送到阅读器,实现离线阅读和内容的统一管理。此外,纯粹以内容为中心的订阅页面布局,更利于专注阅读,无需频繁切换到原网页处理广告弹窗等杂乱信息。 传统网站一般提供两种类型的订阅:第一是仅含标题或文章摘要的简洁RSS;第二是未提供任何订阅源。前者虽然有一定信息提示效果,但内容简略,本身也限制了阅读深度。后者则让用户无法通过订阅器跟踪更新,只能频繁访问网页。这时,FreshRSS的网页抽取功能便派上用场,通过用户自定义的CSS选择器或XPath路径,实现对网页中文章主体的自动抓取,从而生成完整的推送内容。
FreshRSS内置的Article CSS selector设置,对于那些有标准页面结构且内容被固定HTML类包裹的网站尤其友好。用户只需分析网页源代码,找到文章完整内容所对应的标签及其Class或ID属性,如常见的 .rich-text、.article-content 等,填写后FreshRSS即可精准提取文本部分,排除广告、侧边栏等无关元素,实现干净且可读性强的订阅文章显示。例如,西班牙语新闻网站Deutsche Welle ES的内容多包含在类名为 rich-text 的HTML元素内,通过在FreshRSS中设置 .rich-text 选项,便能轻松获取清晰且完整的文章内容。 对于那些没有任何RSS订阅而且网页结构较为复杂的网站,XPath抓取则更加灵活且功能强大。XPath允许用户根据HTML文档结构定位准确的内容片段。通过浏览器开发者工具查看网页源码,结合XPath表达式,将文章列表与单篇文章正文分别定位。
综合运用可将网站前端的文章列表页与每篇新闻详情页关联,实现每条订阅项的准确抓取,并排除自动插入的推荐、广告等干扰元素。尽管XPath表达式的编写对初学者来说稍显复杂,不过网络上已有丰富教程可供参考。例如Dan Q撰写的Advanced XPath Scraping with FreshRSS便是优秀入门资源。 FreshRSS的个性化抓取设置不仅令用户获得所需内容完整的订阅源,同时鼓励社区协作。许多用户将自己针对特定网站调试好的抓取参数开源共享,形成了多样性的配置库。这种共建共用模式降低了新手操作门槛,也让更多难以获取订阅的网站变得可用。
笔者创建了一个名为 freshrss-fulltext-settings 的代码库,收录并持续更新多个主流新闻网站和内容平台的抓取配置。欢迎各位热爱订阅的朋友积极贡献自己的经验、Pull Request或问题建议,促进更多优质订阅被实现。 除了新闻网站外,FreshRSS的自定义抓取同样适用于维基百科监控条目更新、OpenStreetMap区域修改通知、以及社交平台内容整理等多种应用场景。以维基百科为例,利用RSS订阅跟踪关注条目变化,结合抓取筛选能获得更丰富的编辑详情;又如使用Mastodon的社交链接生成聚合订阅,实现跨平台信息汇总管理,均极大提升数据获取效率和内容丰富度。 当尝试为无订阅源的网站实现此类全内容抓取时,用户应首先通过浏览器调试工具明确定位文章列表和正文页的DOM结构,结合CSS选择器/XPath路径调试反复测试,确保数据能够正确匹配与抓取。实际操作过程中需要注意避开页面中动态加载内容或限制抓取的JavaScript,这可能导致抓取失效。
此时,可以综合利用FreshRSS定时刷新与页面预览功能逐步调整。 总体而言,利用FreshRSS制作全内容RSS结合个性化网页抓取,不仅解决了摘要订阅信息有限、无法离线阅读的窘境,也赋能用户自主打造专属信息管理系统。作为开源软件,FreshRSS拥有活跃的社区支持和持续更新迭代,令使用体验日益完善。推荐有信息收集需求的用户掌握这一技能,解锁更多网站内容的可订阅性,大幅提升信息获取效率和质量。 面向未来,期待能有更多网站直接提供高质量全内容订阅源,同时社区能持续贡献抓取配置库,合作推动开源订阅生态繁荣。借助FreshRSS,我们正逐步告别碎片化阅读,实现称心如意的内容订阅新时代。
。