我正在尝试使用 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/