想提取百度和谷歌搜索结果,包括标题、URL、和简介。现在代码只能提取谷歌的内容,并且内容获取的不完整。百度例子:<table cellpadding="0" cellspacing="0" class="result" id="18" ><tr><td class=f><h3 class="t"><a onmousedown="return c({'fm':'as','F':'778717EA','F1':'9D73F1E4','F2':'4CA6BE6B','F3':'54E5243F','T':'1329470302','title':this.innerHTML,'url':this.href,'p1':18,'y':'EFEDDFDF'})" href="http://www.se-express.com/about/about1.htm"target="_blank"><em>搜索引擎</em>分类≡三种主要<em>搜索引擎</em>种类</a>
</h3><font size=-1> 搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和<em>元搜索引擎</em>(Meta Search ...<br><span class="g">www.se-express.com/about/about1.htm 2006-1-17  </span> - <a href="http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7226bc0d063289ed108c4251a564711b2e6783f43548e823a7a52ff141bacf32172405966e88f8dd50a8bb4855e299f5447671df65663a30ed9c85154b137e45ffeae69f0ccf025e7d8c5a2da4324ce&p=c6769a4186cc42ad5ff3d20c4d07c4&user=baidu&fm=sc&query=%D4%AA%CB%D1%CB%F7%D2%FD%C7%E6&qid=aaaa17cc1c6af7be&p1=18" target="_blank" class="m">百度快照</a><span class="liketip"id="like_3292908618009573912"></span>
<br></font></td></tr></table>谷歌例子:
<h3 class="r"><a href="http://www.sowang.com/search/meta_search.htm" target=_blank class=l onmousedown="return rwt(this,'','','','3','AFQjCNHg7RWhFwyHUHZ5EyIJqMwSZiWAgQ','','0CEcQFjAC',null,event)">中文<em>元搜索引擎</em>-- 中文搜索引擎指南网</a></h3><div class="s"><div class="f kv"><cite>www.sowang.com/search/meta_search.htm</cite><span class=gl> - <a href="http://webcache.googleusercontent.com/search?q=cache:wGc9uKiuPbsJ:www.sowang.com/search/meta_search.htm+%E5%85%83%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E&amp;cd=3&amp;hl=zh-CN&amp;ct=clnk" target=_blank onmousedown="return rwt(this,'','','','3','AFQjCNGOw2PghnD_Jgz0rHaka83Krex44A','','0CEgQIDAC',null,event)">网页快照</a></span><span class=vshid><a href="/search?hl=zh-CN&amp;newwindow=1&amp;safe=strict&amp;q=related:www.sowang.com/search/meta_search.htm+%E5%85%83%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E&amp;tbo=1&amp;sa=X&amp;ei=xB4-T_D4KvCviQfdh9DCBA&amp;ved=0CEkQHzAC">类似结果</a></span></div><div class="esc slp" id="poS2" style="display:none">您已公开地对此项 +1。&nbsp;<a href="#" class="fl">撤消</a></div><span class="st"><em>元搜索引擎</em>,通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的(甚至是同时利用若干个)搜索引擎来实现检索操作,是对分布于网络的多种检索 <b>...</b><br></span></div>
现在的谷歌代码是:
 string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
                string pattern = @"(?<=<h3[\s\S]*?)((<b>[\s\S]*?</b>[^<]*)+)[\s\S]*?(<cite>\s*([^<]+)\s*</cite>)";
                foreach (Match m in Regex.Matches(tempStr, pattern))
                {
                    //循环输出
                    string title = m.Groups[1].Value;//<b>什么</b>是&gt;&gt; 首页-<b>什么</b>是<b>什么</b>,搜搜就知道!
                    string href_all = m.Groups[3].Value;//<cite>www.shenmeshi.com/</cite>
                    string href = m.Groups[4].Value;//www.shenmeshi.com/
                }百度代码是:html为读取的数据  string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312")); public List<Keyword> GetKeywords(string html)
        {
            List<Keyword> keywords = new List<Keyword>();
            Regex regtable = new Regex(@"(?is)<table[^>]*?id=(['""]?)(\d{2}|\d{1})\1[^>]*>(?><table[^>]*>(?<o>)|</table>(?<-o>)|(?:(?!</?table\b).)*)*(?(o)(?!))</table>", RegexOptions.IgnoreCase);
            Regex rega = new Regex(@"(?is)<a\b[^>]*?href=([""]?)(?<link>[^""\s>]+)\1[^>]*>(?<title>.*?)</a>", RegexOptions.IgnoreCase);
            MatchCollection mctable = regtable.Matches(html);  
            foreach (Match mtable in mctable)
            {
                if (mtable.Success)
                {
                    Match ma = rega.Match(mtable.Value);
                    if (ma.Success)
                    {
                        Keyword keyw = new Keyword();
                        keyw.Link = ma.Groups["link"].Value;
                        keyw.Title = ma.Groups["title"].Value;
                        keywords.Add(keyw);
                    }
                }
            }
            return keywords;
        }    class Keyword
    {
        public string Title { get; set; }
        public string Link { get; set; }
    }

解决方案 »

  1.   

    需要提取的信息:百度
    标题: <em>搜索引擎</em>分类≡三种主要<em>搜索引擎</em>种类
    网址:http://www.se-express.com/about/about1.htm
    简介: 搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和<em>元搜索引擎</em>(Meta Search ...谷歌
    标题:中文<em>元搜索引擎</em>-- 中文搜索引擎指南网
    网址:www.sowang.com/search/meta_search.htm
    简介:<em>元搜索引擎</em>,通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的(甚至是同时利用若干个)搜索引擎来实现检索操作,是对分布于网络的多种检索 <b>...</b>
      

  2.   

    http://blog.csdn.net/small5e4444/article/details/5740018
      

  3.   

    1.百度
     string tempStr = File.ReadAllText(@"C:\Users\dell\Desktop\Test.txt",Encoding.GetEncoding("gb2312"));//读取文档
                string pattern = @"(?<=<h3[^>]+class=['""]?t[^>]*>)[\s\S]*?<a[^>]+href=(['""]?)([^'""]+)\1[^>]*>((?:(?!</a>).)*)[\s\S]*?</h3>[\s\S]*?<font[^>]*>[\s\S]*?((?:(?!(?:(</?br>))?<span[^>]*class=\1g\1).)*)";
                foreach (Match m in Regex.Matches(tempStr, pattern))
                {
                    //循环输出
                    string output =  m.Value;
                    string href = m.Groups[2].Value;
                    /*
                     * http://www.se-express.com/about/about1.htm
                     */
                    string title = m.Groups[3].Value;
                    /*
                     * <em>搜索引擎</em>分类≡三种主要<em>搜索引擎</em>种类
                     */
                    string description = m.Groups[4].Value;
                    /*
                     *  搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和<em>元搜索引擎</em>(Meta Search ...
                     */
     
                }
      

  4.   

    2.谷歌
    string tempStr = File.ReadAllText(@"C:\Users\dell\Desktop\Test.txt",Encoding.GetEncoding("gb2312"));//读取文档
                string pattern = @"(?i)(?<=<h3[^>]+class=['""]?r[^>]*>)[\s\S]*?<a[^>]+href=(['""]?)([^'""]+)\1[^>]*>((?:(?!</a>).)*)[\s\S]*?</h3>[\s\S]*?<span[^>]*class=\1st\1[^>]*>((?:(?!(?:((/?<br>))?</span>)).)*)";
                foreach (Match m in Regex.Matches(tempStr, pattern))
                {
                    //循环输出
                    string output =  m.Value;
                    string href = m.Groups[2].Value;
                    /*
                     * http://www.sowang.com/search/meta_search.htm
                     */
                    string title = m.Groups[3].Value;
                    /*
                     * 中文<em>元搜索引擎</em>-- 中文搜索引擎指南网
                     */
                    string description = m.Groups[4].Value;
                    /*
                     *  <em>元搜索引擎</em>,通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的(甚至是同时利用若干个)搜索引擎来实现检索操作,是对分布于网络的多种检索 <b>...</b>
                     */            }
      

  5.   

    还是有一部分不成功的
    我贴出一些用的测试内容:谷歌<h3 class="r"><a href="http://homepage.yesky.com/50/30000550.shtml" target=_blank class=l onmousedown="return rwt(this,'','','','4','AFQjCNGc1U58KCj6JAJ3Wz5OepAxpRBGcg','','0CEMQFjAD',null,event)">Google正在<em>测试</em>新版<em>搜索结果</em>页面_天极网</a></h3><div class="s"><div class="f kv"><cite><span class=bc>homepage.yesky.com &rsaquo; <a href="/url?url=http://soft.yesky.com/&amp;rct=j&amp;sa=X&amp;ei=e1VDT96KGonBiQe4zqHyBA&amp;ved=0CEQQ6QUoADAD&amp;q=%E6%B5%8B%E8%AF%95%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C&amp;usg=AFQjCNHNhNsJ0m5FeOIQ5-X9C9tuzXhyZg" target=_blank>软件频道</a> &rsaquo; <a href="/url?url=http://homepage.yesky.com/&amp;rct=j&amp;sa=X&amp;ei=e1VDT96KGonBiQe4zqHyBA&amp;ved=0CEUQ6QUoATAD&amp;q=%E6%B5%8B%E8%AF%95%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C&amp;usg=AFQjCNG-eWcHyoQFobh-s8IiPEXUHQnR3w" target=_blank>网页陶吧</a></span></cite><span class=gl> - <a href="http://webcache.googleusercontent.com/search?q=cache:qJBBIFYWfzgJ:homepage.yesky.com/50/30000550.shtml+%E6%B5%8B%E8%AF%95%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C&amp;cd=4&amp;hl=zh-CN&amp;ct=clnk" target=_blank onmousedown="return rwt(this,'','','','4','AFQjCNF7yJiUekssv9GGMzDmwG_p4zA05g','','0CEcQIDAD',null,event)">网页快照</a></span><span class=vshid></span></div><div class="esc slp" id="poS3" style="display:none">您已公开地对此项 +1。&nbsp;<a href="#" class="fl">撤消</a></div><span class="st"><span class="f">2011年5月9日 &ndash; </span>消息人士透露,Google正在<em>测试</em>一个全新的<em>搜索结果</em>页面,该页面目前仍然处于<em>测试</em><wbr>阶段,Google对此十分重视。<br></span></div></div><!--n--></li><!--m--><li class="g"><div class="vsc" pved="0CEkQkgowBA" sig="-cL">百度<h3 class="r"><a href="http://homepage.yesky.com/50/30000550.shtml" target=_blank class=l onmousedown="return rwt(this,'','','','4','AFQjCNGc1U58KCj6JAJ3Wz5OepAxpRBGcg','','0CEMQFjAD',null,event)">Google正在<em>测试</em>新版<em>搜索结果</em>页面_天极网</a></h3><div class="s"><div class="f kv"><cite><span class=bc>homepage.yesky.com &rsaquo; <a href="/url?url=http://soft.yesky.com/&amp;rct=j&amp;sa=X&amp;ei=e1VDT96KGonBiQe4zqHyBA&amp;ved=0CEQQ6QUoADAD&amp;q=%E6%B5%8B%E8%AF%95%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C&amp;usg=AFQjCNHNhNsJ0m5FeOIQ5-X9C9tuzXhyZg" target=_blank>软件频道</a> &rsaquo; <a href="/url?url=http://homepage.yesky.com/&amp;rct=j&amp;sa=X&amp;ei=e1VDT96KGonBiQe4zqHyBA&amp;ved=0CEUQ6QUoATAD&amp;q=%E6%B5%8B%E8%AF%95%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C&amp;usg=AFQjCNG-eWcHyoQFobh-s8IiPEXUHQnR3w" target=_blank>网页陶吧</a></span></cite><span class=gl> - <a href="http://webcache.googleusercontent.com/search?q=cache:qJBBIFYWfzgJ:homepage.yesky.com/50/30000550.shtml+%E6%B5%8B%E8%AF%95%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C&amp;cd=4&amp;hl=zh-CN&amp;ct=clnk" target=_blank onmousedown="return rwt(this,'','','','4','AFQjCNF7yJiUekssv9GGMzDmwG_p4zA05g','','0CEcQIDAD',null,event)">网页快照</a></span><span class=vshid></span></div><div class="esc slp" id="poS3" style="display:none">您已公开地对此项 +1。&nbsp;<a href="#" class="fl">撤消</a></div><span class="st"><span class="f">2011年5月9日 &ndash; </span>消息人士透露,Google正在<em>测试</em>一个全新的<em>搜索结果</em>页面,该页面目前仍然处于<em>测试</em><wbr>阶段,Google对此十分重视。<br></span></div></div><!--n--></li><!--m--><li class="g"><div class="vsc" pved="0CEkQkgowBA" sig="-cL">
      

  6.   

    楼主贴的两个测试内容貌似都是谷歌的?
    试试把谷歌的正则最后那个<br>后边的?删了