0

我使用以下代码显示 RSS 新闻主题和摘要,它工作正常,但我想在我自己的站点中显示整个新闻,现在我的用户可以点击新闻链接,整个新闻在主站点中可见,但我想要它显示在我的网站上。有可能吗?我可以使用 RSS 在我自己的站点中显示全部内容,还是应该解析主新闻页面并将其显示在我的站点中?我认为解析这个页面非常困难。

我的服务器代码:

//Create a WebRequest
        WebRequest rssReq =
        WebRequest.Create("myRSSsite");
        //Create a Proxy
        WebProxy px = new WebProxy("myRSSsite", true);
        //Assign the proxy to the WebRequest
        rssReq.Proxy = px;
        //Set the timeout in Seconds for the WebRequest
        rssReq.Timeout = 5000;
        try
        {
            //Get the WebResponse
            WebResponse rep = rssReq.GetResponse();
            //Read the Response in a XMLTextReader
            XmlTextReader xtr = new XmlTextReader(rep.GetResponseStream());
            //Create a new DataSet
            DataSet ds = new DataSet();
            //Read the Response into the DataSet
            ds.ReadXml(xtr);
            //Bind the Results to the Repeater
            rssRepeater.DataSource = ds.Tables[2];
            rssRepeater.DataBind();

我也在我的 ASPX 页面上使用转发器来显示 RSS,但我有一个包含新闻标题(链接到主站点)和一个小摘要的列表,仅此而已!有什么方法可以获取整个新闻 HTML 以便将其存储在我的数据库中?

4

1 回答 1

1

网站使用Html Agility Pack抓取新闻文章:

HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse();

var doc = new HtmlAgilityPack.HtmlDocument();

doc.Load(resp.GetResponseStream());
var element = doc.GetElementbyId("Id-of-the-article-body-element");
string content = element.OuterHtml;

如果文章正文元素没有 ID,则必须使用 XPath 查询来查找它。查看有关 HTML Agility Pack 的本教程

于 2012-05-20T11:08:49.517 回答