.....
<ul class="cityresourse">
     
<li>姓  名:<a href="javascript:void(0);" onclick="MM_xmlLoad('user.main&uid=52033250&keep=right');"><strong class="dark_monarch">李大三</strong></a></li>
<li>公 司:<a href="javascript:void(0);" onclick="MM_xmlLoad('alliance.main&aid=1075&keep=right');" ><strong class="dark_normalgeneral">未登记</strong></a></li>
<li>国 家:<strong class="dark_content">中国</strong></li>
<li>年  龄:<strong class="dark_content">40</strong></li>
<li>职  位:<a href="javascript:void(0);" onclick="MM_xmlLoad('emperor.court_list');"><strong class="dark_union">工程师</strong></a></li>
   <li>备  注:
<p><strong>没有备注记录</strong></p>
</li>
</ul>.....
我想提取其中的信息,如:
姓名:李大三
公司:未登记
国家:中国
年龄:40
备注:没有备注记录

解决方案 »

  1.   

    try...MatchCollection mc = Regex.Matches(yourStr, @"<li>(?:(?!</li>)[\s\S])*</li>", RegexOptions.IgnoreCase);
    foreach (Match m in mc)
    {
        richTextBox2.Text += Regex.Replace(m.Value, @"<[^>]*>|\s+", "") + "\n";
    }
      

  2.   

    string htmlstr="xxxxx"; 
    string newstr;
    MatchCollection ms = Regex.Matches(htmlstr,"(?<=li>).+?(?=<)|(?<=>).+?(?=<//strong)", RegexOptions.IgnoreCase);
    foreach (Match m in ms)
    {
    newstr+=Match;
    }
      

  3.   

    这个页面是一个典型的通过javascript管理内容的页面,用户不点击,可能页面上就没有被提取的内容,普通爬虫往往提取到的只有“姓名”没有“李大三”我有个免费使用的工具MetaSeeker工具包,源代码也能阅读,但是不知道这个页面是否能够完全提取下来。我原计划在今年2月完成v3版本时完全支持Ajax/javascript管理的内容的提取,但是,因为得了一次严重眼病,ajax内容的提取只实现了一部分,推迟到下一个版本了。如果有兴趣,可以下载下来试试,下载地址:http://www.gooseeker.com