“<span class="zg_hrsr_ladder">-&nbsp;<a href="http://www.amazon.cn/gp/bestsellers/books/ref=pd_zg_hrsr_b_1_1">图书</a> &gt; <a href="http://www.amazon.cn/gp/bestsellers/books/658404051/ref=pd_zg_hrsr_b_1_2">健身与保健</a> &gt; <a href="http://www.amazon.cn/gp/bestsellers/books/658664051/ref=pd_zg_hrsr_b_1_3">常见病预防与治疗</a> &gt; <b><a href="http://www.amazon.cn/gp/bestsellers/books/660189051/ref=pd_zg_hrsr_b_1_4_last">抑郁症与心理治疗</a></b></span>
</li>
<li class="zg_hrsr_item">
<span class="zg_hrsr_rank">第49位</span> 
<span class="zg_hrsr_ladder">-&nbsp;<a href="http://www.amazon.cn/gp/bestsellers/books/ref=pd_zg_hrsr_b_2_1">图书</a> &gt; <a href="http://www.amazon.cn/gp/bestsellers/books/658428051/ref=pd_zg_hrsr_b_2_2">医学</a> &gt; <a href="http://www.amazon.cn/gp/bestsellers/books/659044051/ref=pd_zg_hrsr_b_2_3">神经病和精神病学</a> &gt; <b><a href="http://www.amazon.cn/gp/bestsellers/books/661975051/ref=pd_zg_hrsr_b_2_4_last">精神病学</a></b></span>
</li>
<li class="zg_hrsr_item">
<span class="zg_hrsr_rank">第66位</span> 
<span class="zg_hrsr_ladder">-&nbsp;<a href="http://www.amazon.cn/gp/bestsellers/books/ref=pd_zg_hrsr_b_3_1">图书</a> &gt; <a href="http://www.amazon.cn/gp/bestsellers/books/658404051/ref=pd_zg_hrsr_b_3_2">健身与保健</a> &gt; <a href="http://www.amazon.cn/gp/bestsellers/books/658671051/ref=pd_zg_hrsr_b_3_3">心理健康</a> &gt; <b><a href="http://www.amazon.cn/gp/bestsellers/books/660212051/ref=pd_zg_hrsr_b_3_4_last">心理治疗</a></b></span>

要求结果如下(数组 或者 DataTable 都可以)
图书  健身与保健  常见病预防与治疗  抑郁症与心理治疗 
图书  医学        神经病和精神病学  精神病学 
图书  健身与保健  心理健康          心理治疗 

解决方案 »

  1.   


    void Main()
    {
    string html=@"<span class=""zg_hrsr_ladder"">-&nbsp;<a href=""http://www.amazon.cn/gp/bestsellers/books/ref=pd_zg_hrsr_b_1_1"">图书</a> &gt; <a href=""http://www.amazon.cn/gp/bestsellers/books/658404051/ref=pd_zg_hrsr_b_1_2"">健身与保健</a> &gt; <a href=""http://www.amazon.cn/gp/bestsellers/books/658664051/ref=pd_zg_hrsr_b_1_3"">常见病预防与治疗</a> &gt; <b><a href=""http://www.amazon.cn/gp/bestsellers/books/660189051/ref=pd_zg_hrsr_b_1_4_last"">抑郁症与心理治疗</a></b></span>
    </li>
    <li class=""zg_hrsr_item"">
    <span class=""zg_hrsr_rank"">第49位</span>  
    <span class=""zg_hrsr_ladder"">-&nbsp;<a href=""http://www.amazon.cn/gp/bestsellers/books/ref=pd_zg_hrsr_b_2_1"">图书</a> &gt; <a href=""http://www.amazon.cn/gp/bestsellers/books/658428051/ref=pd_zg_hrsr_b_2_2"">医学</a> &gt; <a href=""http://www.amazon.cn/gp/bestsellers/books/659044051/ref=pd_zg_hrsr_b_2_3"">神经病和精神病学</a> &gt; <b><a href=""http://www.amazon.cn/gp/bestsellers/books/661975051/ref=pd_zg_hrsr_b_2_4_last"">精神病学</a></b></span>
    </li>
    <li class=""zg_hrsr_item"">
    <span class=""zg_hrsr_rank"">第66位</span>  
    <span class=""zg_hrsr_ladder"">-&nbsp;<a href=""http://www.amazon.cn/gp/bestsellers/books/ref=pd_zg_hrsr_b_3_1"">图书</a> &gt; <a href=""http://www.amazon.cn/gp/bestsellers/books/658404051/ref=pd_zg_hrsr_b_3_2"">健身与保健</a> &gt; <a href=""http://www.amazon.cn/gp/bestsellers/books/658671051/ref=pd_zg_hrsr_b_3_3"">心理健康</a> &gt; <b><a href=""http://www.amazon.cn/gp/bestsellers/books/660212051/ref=pd_zg_hrsr_b_3_4_last"">心理治疗</a></b></span>
    ";
     List<string> list=new List<string>();
     foreach(Match m in   Regex.Matches(html,@"(?<=>)((?!(?:-&nbsp;| &gt;|第\d+)).)*?(?=<)",RegexOptions.IgnoreCase))
     {
       list.Add(m.Value);
     }
     var result=list.ToArray();
    }
      

  2.   

    string s = File.ReadAllText(Server.MapPath("~/test.txt"));
    MatchCollection matches = Regex.Matches(s, @"(?is)<span[^>]+class=""zg_hrsr_ladder""[^>]*>.*?<a[^>]+>([^<>]+)</a>.*?<a[^>]+>([^<>]+)</a>.*?<a[^>]+>([^<>]+)</a>.*?<a[^>]+>([^<>]+)</a>.*?</span>");
    foreach (Match match in matches)
    {
    Response.Write(match.Groups[1].Value + "<br/>");
    Response.Write(match.Groups[2].Value + "<br/>");
    Response.Write(match.Groups[3].Value + "<br/>");
    Response.Write(match.Groups[4].Value + "<br/>");
    }
    输出:
    图书
    健身与保健
    常见病预防与治疗
    抑郁症与心理治疗
    图书
    医学
    神经病和精神病学
    精神病学
    图书
    健身与保健
    心理健康
    心理治疗你自己把它整到数组或datatable里去吧。
      

  3.   


    1楼的代码简化一下:void Main()
    {
    string html ="your html";
     string[] result=Regex.Matches(html,@"(?<=>)((?!(?:-&nbsp;| &gt;|第\d+|\s+)).)*?(?=<)").Cast<Match>().Select(m=>m.Value).ToArray();
    }
      

  4.   

    MatchCollection mc = Regex.Matches(@"<a href="link">Text</a>",
        @"(?isn)<a.+?href=""(?<url>[^""]+)[^>]+>(?<text>.+?)</a>");
    foreach (Match m in mc)
    {
        MessageBox.Show(m.Groups["url"].Value + Environment.NewLine +
        m.Groups["text"].Value);获取连接地址和连接文字
    }
      

  5.   

     string[] result=Regex.Matches(html,@"(?<=>)((?!(?:-&nbsp;| &gt;|第\d+|\s+|/?b\b)).)+?(?=<)").Cast<Match>().Select(m=>m.Value).ToArray();
      

  6.   

    我想提取这个页面的http://www.amazon.cn/%E6%9A%97%E6%9D%83%E5%8A%9B-%E5%8F%AF%E6%80%95%E7%9A%84%E5%82%AC%E7%9C%A0%E6%9C%AF%E5%8F%8A%E6%8E%A7%E5%88%B6%E4%B8%96%E7%95%8C%E7%9A%84%E7%A5%9E%E7%A7%98%E5%8A%9B%E9%87%8F-%E6%B6%82%E5%B0%8F%E7%90%BC/dp/B003NZSDG2/ref=sr_1_1?s=books&ie=UTF8&qid=1324273904&sr=1-1要求结果如下
    图书 健身与保健 常见病预防与治疗 抑郁症与心理治疗  
    图书 医学 神经病和精神病学 精神病学  
    图书 健身与保健 心理健康 心理治疗  
    1 楼的在整个网页里提取就有误
      

  7.   

    这个是可以的
               MatchCollection mc = Regex.Matches(href2, @"<a\s?href=(?<url>.*?)>(?<content>.*?)</a>");
                string s = "";
                foreach (Match m in mc)
                {
                    s += m.Groups["content"].Value + "\n";
                }
                MessageBox.Show(s);
      

  8.   

    ++
    顺便稍微修改下
    string str="";
    foreach (Match match in matches)
            {
                str+=match.Groups[1].Value+",";
                //Response.Write(match.Groups[2].Value + "<br/>");
                //Response.Write(match.Groups[3].Value + "<br/>");
                //Response.Write(match.Groups[4].Value + "<br/>");
                
            }
    string[] arry=str.split(',');//将得到的放入数组中
      

  9.   

    你可以得到网页源码 再截取部分源码 比如网页有个唯一的id叫aaa
    string str=网页源码.substring(0,网页源码.Indexof("aaa"));
    获取网页源码的方法如下:
     //根据url路径获取网页源码
            private string GetWebContent(string sUrl)
            {
                string strResult = "";
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sUrl);
                    //声明一个HttpWebRequest请求
                    request.Timeout = 3000000;
                    //设置连接超时时间
                    request.Headers.Set("Pragma", "no-cache");
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    if (response.ToString() != "")
                    {
                        Stream streamReceive = response.GetResponseStream();
                        Encoding encoding = Encoding.GetEncoding("UTF-8");
                        StreamReader streamReader = new StreamReader(streamReceive, encoding);
                        strResult = streamReader.ReadToEnd();
                    }
                }
                catch (Exception exp)
                {
                    writeLog(exp.Message, DateTime.Now);
                    strResult = "";
                }
                return strResult;
            }
      

  10.   

    用HtmlAgilityPack非常简单:
    string s = File.ReadAllText(Server.MapPath("~/test.txt"));
    HtmlDocument xmlDoc = new HtmlDocument();
    xmlDoc.LoadHtml(s);
    HtmlNodeCollection nodes = xmlDoc.DocumentNode.SelectNodes(@"//div[@class='bucket' and position()>12]/div[@class='content']/ul/li");
    foreach (HtmlNode node in nodes)
    {
    HtmlNodeCollection anchors = node.SelectNodes(@"*");
    foreach (HtmlNode anchor in anchors)
    Response.Write(anchor.InnerText + "<br/>");
    Response.Write("<br/>");
    }
    图书
    健身与保健
    常见病预防与治疗
    抑郁症与心理治疗图书
    健身与保健
    心理健康
    心理治疗图书
    医学
    神经病和精神病学
    精神病学