获取RSS数据时如何保证RSS数据不重复
How can I ensure the RSS data without repetition when fetch RSS data
我们知道,RSS数据会随着站长更新而更新,或者第三方库更新RSS feed数据。
现在,如果我正在编写 RSS Reader,每次我都从网站的 RSS 源获取数据。
如何保证数据是否被抓取?
来自wikipedia RSS :
只有 title
、link
、description
字段是必需的。 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
属性.
检查数据是否存在于数据库中
我们知道,RSS数据会随着站长更新而更新,或者第三方库更新RSS feed数据。
现在,如果我正在编写 RSS Reader,每次我都从网站的 RSS 源获取数据。
如何保证数据是否被抓取?
来自wikipedia RSS :
只有 title
、link
、description
字段是必需的。 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
属性.