代码之家  ›  专栏  ›  技术社区  ›  Anyname Donotcare

将最新更新的内容带到网站

  •  -1
  • Anyname Donotcare  · 技术社区  · 14 年前

    什么样的技术可以在我的网站上带来每日更新的内容,如著名新闻网站的新闻RSS提要,。。。等?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Mikael Svenson    14 年前

    [更新-一般回答]

    正如您已经提到的,RSS提要是获取最新新闻的最佳方式。它们易于使用,并为基于文章的数据提供了标准接口。例如,CNN的头条新闻 http://rss.cnn.com/rss/cnn_topstories.rss . 当使用Firefox浏览新闻网站时,如果该网站有RSS提要,它将在地址栏中显示RSS图标,这样就更容易发现提要。


    既然您将其标记为C#和ASP.Net,我将用编码的方式回答它。

    许多新闻网站都提供RSS提要,这些提要可以与 SyndicationFeed 在.Net 3.5中引入的类。这个 SyndicationFeed 类同时支持Atom1.0和RSS2.0。

    在我看来,在使用feed时,最重要的部分是缓存它们,这样你就不会为网页上的每一次点击下载feed。你从哪里获取信息取决于你想要什么样的主题以及你在世界上的位置。

    这里有一个简短的例子。

    // Check cache for data
    IEnumerable<SyndicationItem> items = Cache["NewsFeed"] as IEnumerable<SyndicationItem>;
    if (items == null)
    {
        // Not in cache, go get it!
        try
        {
            SyndicationFeed news = SyndicationFeed.Load(XmlReader.Create("http://www.news.corp/feed.xml"));
            items = news.Items;
        }
        catch
        {
            items = new List<SyndicationItem>();
        }
        // Add the items to the cache
        Cache.Insert("NewsFeed", items, null, DateTime.Now.AddHours(1.0), TimeSpan.Zero);
    }
    // Bind your data somewhere