首先用WebRequest读取网页的内容
然后用正则提取出所有带“答案”两字的链接
再然后用WebRequest抓取这些链接所指向的页面 

解决方案 »

  1.   

    webclient,httpwebrequest
    webbrower获取页面数据,再查询
    HtmlElementCollection coll= doc.GetElementsByTagName("A");
                    for (int i = 0; i < coll.Count; i++)
                    {
                    }
      

  2.   


     //对url进行编码;url:请求的路径;enc:编码格式
        private static string UrlEncode(string url, Encoding enc)
        {
            byte[] bs = enc.GetBytes(url);              //得到字节表示的数组
            StringBuilder sb = new StringBuilder();     //用于返回结果
            for (int i = 0; i < bs.Length; i++)
            {
                if (bs[i] < 128)                        //asc码在128以下,直接添加
                    sb.Append((char)bs[i]);
                else
                {
                    //以格式化好的样式添加
                    sb.Append("%" + bs[i++].ToString("x").PadLeft(2, '0'));
                    sb.Append("%" + bs[i].ToString("x").PadLeft(2, '0'));
                }
            }
            return sb.ToString();
        }    //获取某个页面。以返回流的编码方式,接收返回的信息
        private string Thief(string url)
        {
            string tempurl = UrlEncode(url, System.Text.Encoding.GetEncoding("gb2312"));  //url
            HttpWebRequest webr = (HttpWebRequest)WebRequest.Create(tempurl);        //创建请求
            HttpWebResponse wb = (HttpWebResponse)webr.GetResponse();
            Stream sr = wb.GetResponseStream();             //得到返回数据流
            Encoding encode;
            switch (wb.CharacterSet.ToLower())              //返回数据流的编码方式
            {
                case "utf-8":
                    encode = System.Text.Encoding.GetEncoding("utf-8");
                    break;
                case "gb2312":
                    encode = System.Text.Encoding.GetEncoding("gb2312");
                    break;
                default:
                    encode = System.Text.Encoding.GetEncoding("gb2312");   //默认为中文
                    break;
            }
            StreamReader sr1 = new StreamReader(sr, encode);
            string zz = sr1.ReadToEnd();                        //读取完成
            sr1.Close();
            wb.Close();//关闭
            return zz;
        }