当前位置:编程学习 > C#/ASP.NET >>

如何用c#实现在网页上查找功能

  比如,我要在一个网页上查找所有有"答案"两个字的地方,然后点击这些链接 --------------------编程问答-------------------- 首先用WebRequest读取网页的内容
然后用正则提取出所有带“答案”两字的链接
再然后用WebRequest抓取这些链接所指向的页面  --------------------编程问答-------------------- 能给出实现代码吗 --------------------编程问答-------------------- webclient,httpwebrequest
webbrower获取页面数据,再查询
HtmlElementCollection coll= doc.GetElementsByTagName("A");
                for (int i = 0; i < coll.Count; i++)
                {
                }
--------------------编程问答-------------------- 首先获取页面,然后分析超级链接,如果超级链接中的文字包含答案就为有效数据
--------------------编程问答--------------------

 //对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;
    }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,