要实现一个读取别人网页上面的新闻,然后在自己的网页上面显示

解决方案 »

  1.   


    WebClient myWebClient = new WebClient();
    byte[] webDada = myWebClient.DownloadData("http://web.idccdns.cn/key.htm");
    string keywords = Encoding.Default.GetString(webDada);
      

  2.   

    用WebRequest, WebClient
    一向B4这种采集做法。
      

  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.   

          protected string cutstr(string str, string bs, string es)
        {
            Match tempstr = Regex.Match(str, "(" + bs + ").+?(" + es + ")");        string temp2 = tempstr.ToString();
            if (temp2.Length == 0)
            {
                return "采集失败!!!";
            }
            else
            {
                return temp2.Substring(bs.Length, temp2.Length - bs.Length - es.Length);        }    } 这是我的方法 但是不行  可以帮我看看吗