要实现一个读取别人网页上面的新闻,然后在自己的网页上面显示,页面的样式都要是自己的
   在线等待高人指点。。 

解决方案 »

  1.   

    数据采集,用WebClient,WebRequest,WebReponse实时访问
      

  2.   

    如果是rss新闻很好办,不是rss只有采集了
      

  3.   

    WebClient提供发送数据以及从URL标识的资源获得数据的常用方法
    WebClient使用WebRequest类提供访问Internet资源的方式
    WebClient以更高的级别封装WebRequest类,并提取了大部分的细节
    WebClient方法
    OpenWrite():发送流
    UploadData():发送字节数组,并在响应时返回字节数组
    OpenFile():发送本地文件
    UploadValues():发送名值集合
    DownLoadData():下载数据并返回字节数组
    DownLoadFile():把得到数据下载给本地文件
    OpenRead():把从资源得到的数据返回为流
    例1. WebClient类使用
    前台:
      输入URL:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <asp:Button ID="btnGetData" runat="server" Text="得到数据" OnClick="btnGetData_Click" /><br />
            <asp:TextBox ID="TextBox4" runat="server" Height="117px" TextMode="MultiLine" Width="312px"></asp:TextBox><br />
            要下载的文件地址URL:<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
            <asp:Button ID="btnDownLoad" runat="server" Text="下载文件" OnClick="btnDownLoad_Click" />
    后台:
    using System.Net;
    using System.IO;
    using System.Net.Sockets;
    protected void btnGetData_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();
            Stream response = client.OpenRead(TextBox3.Text);
            TextBox4.Text = "";
            int nByteData;
            do
            {
                nByteData = response.ReadByte();
                if (nByteData > 0)
                    TextBox4.Text += Convert.ToChar(nByteData);
            }while (nByteData > 0);
            response.Close();
        }
        protected void btnDownLoad_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();
            string strDes = "e:\\"+Path.GetFileName(TextBox5.Text);
            client.DownloadFile(TextBox5.Text,strDes);
            Response.Write("目标地址为:"+strDes);
    }
    *WebClient以更高的封装方式封闭了WebRequest.
    一. 使用WebRequest和WebResponse
      可以组合WebRequest和WebResponse类,从Internet资源请求数据,然后读取响应
    例2. WebRequest与WebResponse类使用实例
    前台: 
            URL地址:<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>&nbsp;<asp:Button ID="btnGet"
                runat="server" Text="获取数据" OnClick="btnGet_Click" /><br />
            <asp:TextBox ID="TextBox1" runat="server" Height="133px" TextMode="MultiLine" Width="294px"></asp:TextBox>
    后台:
    using System.Net;
    using System.IO;
    using System.Net.Sockets;
    using System.Text;
    protected void btnGet_Click(object sender, EventArgs e)
        {
            WebRequest req = WebRequest.Create(TextBox6.Text);
            WebResponse res = req.GetResponse();
            Stream ReceiveStream = res.GetResponseStream();
            Encoding ecode = Encoding.GetEncoding("utf-8");
            StreamReader sr = new StreamReader(ReceiveStream,ecode);
            Char[] ReadBuffer = new Char[256];
            int nCount = sr.Read(ReadBuffer,0,256);
            while (nCount > 0)
            {
                string str = new string(ReadBuffer,0,nCount);
                TextBox1.Text += str;
                nCount = sr.Read(ReadBuffer,0,256);
            }
    }
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.Net;
    using System.IO;
    using System.Text.RegularExpressions;namespace MCore.BLL
    {
        public class GetPage
        {
            /// <summary>
            /// 获取指定URL页面的内容,使用HttpWebRequest方式
            /// </summary>
            /// <param name="xURL">URL的字符串表现形式</param>
            /// <param name="encode">页面使用的编码</param>
            /// <returns>返回页面HTML代码</returns>
            public string Get_Page(string xURL)
            {
                string content = "";
                HttpWebRequest httpget = (HttpWebRequest)HttpWebRequest.Create(xURL);
                try
                {
                    HttpWebResponse httpres = (HttpWebResponse)httpget.GetResponse();
                    Stream httpstr = httpres.GetResponseStream();
                    StreamReader sr = new StreamReader(httpstr, Encoding.Default);
                    content = sr.ReadToEnd();
                    sr.Close();            }
                catch (Exception)
                {            }
                return content;
            }        /// <summary>
            /// 获取指定内容中的部分信息
            /// </summary>
            /// <param name="PageContent">指定内容</param>
            /// <param name="RegStr">要获取信息的正则表达式</param>
            /// <returns>最后匹配的结果集</returns>
            public string[] Get_Info(string PageContent, string RegStr)
            {
                ArrayList info = new ArrayList();
                Regex RegURL = new Regex(RegStr);
                foreach (Match myMatch in RegURL.Matches(PageContent))
                {
                    info.Add(myMatch.ToString());
                }
                string[] Infos = new string[info.Count];
                info.CopyTo(Infos);
                if (info.Count == 0)
                {
                    Infos = new string[1] { "" };
                }
                return Infos;
            }        /// <summary>
            /// 获取指定URL页面的内容,使用HttpWebRequest方式
            /// </summary>
            /// <param name="xURL">URL的字符串表现形式</param>
            /// <param name="encode">页面使用的编码</param>
            /// <returns>返回页面HTML代码</returns>
            public string Get_Page(string xURL, Encoding encode)
            {
                string content = "";
                HttpWebRequest httpget = (HttpWebRequest)HttpWebRequest.Create(xURL);
                try
                {
                    HttpWebResponse httpres = (HttpWebResponse)httpget.GetResponse();
                    Stream httpstr = httpres.GetResponseStream();
                    StreamReader sr = new StreamReader(httpstr, encode);
                    content = sr.ReadToEnd();            }
                catch (Exception)
                {            }
                return content;
            }        public string GetPageContent(string url, string postdata, string encode, string method, CookieContainer cc)
            {
                HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
                objRequest.KeepAlive = true;
                objRequest.AllowAutoRedirect = true;
                objRequest.UserAgent = "Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+SV1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+Alexa+Toolbar)";
                objRequest.CookieContainer = cc;
                objRequest.Method = method;
                objRequest.Referer = url;
                objRequest.ProtocolVersion = System.Net.HttpVersion.Version11;            if (method.ToLower() == "post")
                {
                    objRequest.ContentType = "application/x-www-form-urlencoded";
                    byte[] bytes = Encoding.GetEncoding(encode).GetBytes(postdata);
                    objRequest.ContentLength = bytes.Length;
                    Stream outStream = objRequest.GetRequestStream();
                    outStream.Write(bytes, 0, bytes.Length);
                    outStream.Close();
                }            try
                {
                    HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
                    Stream objStream = objResponse.GetResponseStream();
                    StreamReader sr = new StreamReader(objStream, System.Text.Encoding.GetEncoding(encode));
                    return sr.ReadToEnd();
                }
                catch (Exception ex)
                {
                    return ex.ToString();
                }
            }
        }
    }