c# - 从 C# SyndicationFeed 读取所有 rss 项目

标签 c# rss syndication-feed

我正在尝试使用 System.ServiceModel.Syndication 从 C# 代码读取 RSS 提要

var reader = XmlReader.Create(feedUrl);
var feed = SyndicationFeed.Load(reader);

代码运行完美,但只提供了 25 个提要项目。

对于相同的 feed url,在 Google 阅读器等阅读器中可以清楚地看到数百个项目。

如何在 SyndicationFeed 中获取超过 25 个 feed 项目?

最佳答案

简而言之,除非提要提供商为其提要提供自定义分页,或者可能通过推断帖子/日期结构,否则您只能获得这 25 个帖子。仅仅因为您知道有超过 25 个帖子并不意味着它们可以通过提要获得。 RSS 旨在显示最新的帖子;它不是为了存档需要,也不是为了像网络服务一样使用。分页也不是 RSS spec 的一部分。或 Atom spec .请参阅其他答案:How Do I Fetch All Old Items on an RSS Feed?

Google 阅读器是这样工作的:Google 的抓取工具会在新提要首次在互联网上发布后立即检测到它,并且抓取工具会定期访问它。每次访问时,它都会将所有新帖子存储在 Google 的服务器上。通过在其爬虫发现新提要时立即存储提要项,他们可以将所有数据追溯到提要的开头。复制此功能的唯一方法是在新提要开始时开始存档,这是不切实际且不太可能的。

总而言之,如果 feed 地址中的项目超过 25 个,SyndicationFeed 将获得 > 25 个项目。

关于c# - 从 C# SyndicationFeed 读取所有 rss 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315732/

相关文章:

c# - JSON.NET 干扰 MSChart 日期

php - 如何阅读 RSS 形式的邮件列表

java - 在 android 中从 news.bitcoin.com 获取 RSS feed 时出现文件未找到异常

c# - SyndicationItem.Content 为空

.net - Argotic Syndication Framework 诉 System.ServiceModel.Syndication

c# - WebReference 和源代码控制

c# - Random.Next() 的概率

c# - MVVM Light - RaisePropertyChanged 不起作用

rss - 一个 RSS 提要中有多少条目?我可以为 RSS 提要创建页面吗?

c# - 使用 SyndicationFeed 读取 SyndicationItem 中的非标准元素