获取RSS数据时如何保证RSS数据不重复

How can I ensure the RSS data without repetition when fetch RSS data

我们知道,RSS数据会随着站长更新而更新,或者第三方库更新RSS feed数据。

现在,如果我正在编写 RSS Reader,每次我都从网站的 RSS 源获取数据。

如何保证数据是否被抓取?

来自wikipedia RSS

只有 titlelinkdescription 字段是必需的。 pubDate 不是必需的。所以,我无法确定数据是否是由我们通过 pubDate 或其他字段(如 lastBuildDate 字段)获取的。

那么,哪位朋友可以告诉我,你们是如何验证feed数据是否被我们抓取的呢?

阅读 RSS 提要时,每个项目的 guid 元素用于检查该项目是否已被阅读。

guid 可以是项目 HTML 版本的永久链接,如下所示:

<guid>http://dallas.example.com/1983/05/06/joebob.htm</guid>

A guid 也可以是为项目提供唯一值的任何其他文本,例如使用 TAG URI 规范的文本,如本例所示:

<guid isPermaLink="false">tag:dallas.example.com,4131:news</guid>

虽然名称 guid 代表全球唯一 ID,但在 RSS 中没有要求 guid 值是全球唯一的。至多您可以希望它对于该提要发布者是唯一的。

guid 元素是可选的。

最后我发现 link 可以确保一个项目是否被抓取。

我可以将抓取的数据保存在我的数据库中,每次用户抓取数据时,它可以通过link 属性.

检查数据是否存在于数据库中