如何验证RSS feed?
内容出处: https://www.inoreader.com/knowledge-base/how-to-validate-rss-feeds
RSS通过联合各种来源的内容,将自己定位为工作优化和效率的一个不太可能的(通常是无名的)英雄。当前一代的Feed阅读器不仅能从不同的媒体(Twitter简介、新闻通讯、YouTube频道和评论区)重定向帖子,它们还结合了分享选项和与其他应用程序的连接,以提供尽可能好的服务。
这些额外的功能使RSS阅读器从一个保持最新信息的被动工具提升为一个发现新来源、自动化内容,然后进一步分发到新渠道的主动工具。因此,网站所有者应该考虑添加RSS提要,以吸引这部分读者,否则他们可能不一定会保留。
生成一个RSS源是很简单的。毕竟,该协议自1999年以来就已经存在,用户不需要跳过障碍就可以开始。你从众多选项中选择一个RSS阅读器(免费或付费),然后订阅你喜欢的网站的RSS提要,你就完成了。所有新的更新一经发布就会到达你的阅读器中。
这就是RSS所宣传的。这也是它所提供的,但我们必须做一个附带说明。随着技术的进步,代码中新元素的增加,以及对RSS提要与其他应用程序整合的期望,出错的概率在稳步上升。
这就把我们引向了RSS订阅验证,以及它在实现这些性能期望方面的作用。
因此,让我们直接进入,找出验证过程是什么样子的,以及什么工具能在一天结束时完成工作
为什么你需要验证一个RSS提要?
与任何编码语言一样,XML需要精确性,否则你的RSS提要就不能发挥其全部能力。要么是RSS阅读器看不到它,要么是XML文件在应用程序的Feed中导致错误–帖子不显示或已读帖子被标记为未读。验证是一种安全预防措施,防止以后出现不必要的压力。就像有HTML、CSS和无障碍准则的验证器一样,有一些工具是为了让你在处理RSS时更轻松。
但是,首先让我们来看看XML文件应该做什么! 为了成功地将内容从一个网站聚合到一个Feed阅读器,Feed阅读器必须通过XML文件爬行来解析新的文章。频道(整个RSS提要)和项目(单个帖子)都应该有相同的核心元素–标题、描述、链接–对RSS阅读器来说是可读的。此外,还有很多非强制性的频道元素,这使整体结构更加复杂。
每个CMS如WordPress、Joomla和Drupal都有自己的生成RSS提要的方式,有一些细微的差异需要考虑。总的来说,RSS源验证有两个功能–它可以剔除任何错误,并确保与其他与RSS阅读器通信的应用程序的兼容性。
剔除任何问题
仅仅因为RSS是用相对简单的XML语言编码的,并不一定排除其代码中存在某些错误的可能性。错误的代码会混淆RSS阅读器阅读RSS提要的方式,因此,需要一个提要遵循特定的协议,而不仅仅是在你的网站源代码的某个地方有一个RSS提要的URL。自动验证的功能是在任何实际问题浮出水面之前,为Feed读者和用户提供一个故障排除机制。
困扰RSS格式的最常见的问题之一是日期格式。虽然有大量的日期格式可用,但RSS承认一种标准化的格式 - Sun, 11 Oct 2020 12:12:06 GMT - 被称为RFC822格式。根据所使用的具体编程语言,有一个不同的命令。对于Ruby,代码看起来像DateTime.now.rfc822,你必须为你选择的语言寻找正确的输出。
同样,时区的变化会使时间戳向前或向后移动,这种变化的结果很可能触发RSS阅读器将所有当前的文章标记为全新的。诸如此类的错误会降低终端消费者的整体满意度,并可能导致更高的退订率。
另一个值得注意的疏忽是包含
保证兼容性
单独使用,RSS是一个强大的工具,可以整合信息流,提高你日常的工作效率。然而,当它在与其他应用程序兼容的情况下应用时,RSS的全部潜力就会显现出来。在网站所有者这一端,这给保证RSS提要的功能带来了额外的压力。因此,我们又回到了RSS源验证的重要性。
RSS源经常与其他应用程序和新闻聚合网站沟通,如谷歌新闻、Pocket、OneNote和MailChimp。与第三方应用程序的兼容性取决于这些服务是否能够正确阅读RSS提要,如果没有适当的格式,这将是不可能的。对于那些无法以其他方式获取的内容,如播客剧集,风险变得更高,因为听众使用Spotify、iTunes和Stitcher等应用程序来接收内容–这是我们想要强调的。为此,RSS的兼容性应该是第一要务。
我们略微谈了一下你如何能够在与苹果iTunes兼容的同时验证播客的RSS源。
RSS验证的工具
RSS源似乎是一个相当不复杂的编码。有人可能会说这是骗人的,他们是正确的! 现实情况是,在生成RSS提要的过程中,可能出现的问题比人们想象的要多。如果你是一个写代码的人,我们可能会补充说,那就更糟糕了。因此,RSS验证应该是创建RSS提要时的一个必要步骤。即使是WordPress也会在他们的RSS订阅中出错,尽管修复它们仍然相对容易。
自1999年引入以来,RSS已经有了很大的发展和变化,当时RSS feed的XML代码中最重要的元素是URL、标题和频道层面和文章层面的描述。一旦它蹿红,RSS就逐渐包括了一些开发者不需要的额外元素,这导致了RSS 2.0的变化,即完全可以不受限制地添加非强制性的元素,只要这些元素被定义在一个命名空间中。
粗略地看了一下要弄好的各种元素,可能会有点不知所措。如果你对手工验证RSS的想法感到犹豫不决,你不是唯一的一个。不止一个编码员为这个目的开发了他们自己的RSS验证工具–RSS咨询委员会的Feed Validator、播客的Cast Feed Validator和名字恰当的feedvalidator.org。所有这些工具都是免费使用的,而且易于浏览,但我们想着重介绍两个具有一流声誉的Feed验证器。
RSS验证器的名称 1
无论你想验证什么RSS提要,万维网联盟(W3C)发布的提要验证服务不需要你花钱,而且直奔主题。该验证器由Mark Pilgrim和Sam Ruby开发,可以在本地运行,因为它是一个开源项目,可用于RSS 0.90、0.91、0.92、0.93、0.94、1.0和2.0。除了RSS,你也可以将该工具用于Atom feeds,因为该工具支持IETF标准Atom格式。
Feed Validation Service是一个不费吹灰之力的、直接了当的工具。你把你的饲料URL复制到验证字段,点击检查,你就完成了。还有一个选项是通过直接输入代码来验证一个饲料。无论哪种方式,这都不是一个复杂的过程,可用性也延伸到了错误信息的功能。
该工具突出显示了你的代码中的错误,并返回错误的信息,其中有关于如何解决这些问题的可操作提示。在理解一个特定的错误信息方面遇到了障碍?每条信息都提供一个进一步的帮助链接,引导你进入一个深入的教程。Feed Validation Service的另一个优点是它的错误信息和解释目录–对想掌握XML语言的编码者非常有用。正是这种循序渐进的方法和彻底性,使这项服务在业界独树一帜,并成为RSS提要验证的行业标准。
除了验证RSS提要是否符合RSS 2.0规范外,提要验证服务还研究了常用命名空间的元素。
- blogChannel
- 都柏林核心
- itunes
- mod_admin
- mod_syndication
- mod_content (content:encoded only)
Podbase
播客是他们自己的辛迪加,因为除了适当的XML协议外,创作者还必须面对额外的元素和兼容性问题,以便在SEO层面上解决。Podbase由Charles Wiltgen开发,负责处理播客的RSS订阅验证和评估与iTunes的兼容性。鉴于iTunes在英语世界的主导地位,获得适当的兼容性可以巩固播客的寿命和发展。
与饲料验证服务一样,Podbase只需要一个步骤–复制和粘贴你的播客的饲料并点击验证。该工具根据几个标准进行彻底检查,结果应在几秒钟内返回,但整个验证过程可能需要更多时间(这应该是一个红旗,表明你的饲料可能有问题),因为验证过程要经过三层检查表。
XML:Podbase通过标准的RSS源验证步骤运行。是否有一个准备好的RSS提要可以检索?它是按照XML标准形成的吗?之后,Podbase根据RSS 2.0规范验证feed,以确定代码的质量。最后但对播客来说最重要的是,SSL证书是否与iTunes兼容?
SEO:Podbase会通过一个简短的检查表来确定feed的URL是否是一个好的URL。
苹果iTunes:最后,该工具通过对iTunes兼容性的具体要求,在这个阶段,Podbase花了不少时间。该服务通过封面艺术要求,支持HTTP HEAD请求,支持字节范围请求,iTunes的类别和摘要,以及播客饲料被正确搜索的必要元素(<标题>,<作者>和<描述>标签在<频道>和<项目>级别)。