由于俩个网站公用同个数据,不想在写个连接另外一个的数据库,想直接抓取信息显示
例如有个字符串
            string input = "<table style=width:100px><tr><td style=\"border:1px solid #ccc\">天天开心1</td><td style=\"border:1px solid #ccc\">天天开心2</td></tr></table><table><tr><td style=\"border:1px solid #ccc\">天天开心3</td></tr></table>";
想要td里面的内容。该怎么弄?抓取的我会,用HttpWebrequest可以抓取到全部信息。

解决方案 »

  1.   

    建个IFRAME 然后嵌套此页 就行了,或者 控件.innnerHTML 或者 控件.INNERText都行~
      

  2.   

    HttpWebrequest抓取到全部信息都是HTML标签(右健查看源代码的数据一样),那下面你就分析,数据,对我来说也极难啊。
      

  3.   


    using System.Text.RegularExpressions;
                string input = "<table style=width:100px><tr><td style=\"border:1px solid #ccc\">天天开心1</td><td style=\"border:1px solid #ccc\">天天开心2</td></tr></table><table><tr><td style=\"border:1px solid #ccc\">天天开心3</td></tr></table>";
                foreach (Match m in Regex.Matches(input, @"(?is)<td[^>]+>(.+?)</td>"))
                    Console.WriteLine(m.Groups[1].Value);
      

  4.   

    谢谢,这个可以,不过刚上面忘了写了必须要在class=某个值的td内容,在帮我一下喔。
                string input = "<table class=\"a\" style=width:100px><tr><td style=\"border:1px solid #ccc\">天天开心1</td><td style=\"border:1px solid #ccc\">天天开心2</td></tr></table><table class=\"a\"><tr><td style=\"border:1px solid #ccc\">天天开心3</td></tr></table>";
      

  5.   

    你给出的例子只有style=,哪有class=的td?
    说清楚你的要求
      

  6.   

    class=某个值的table内的td内容。因为页面有很多个table。其他不要,上面取class="a"的table内的td
      

  7.   

    弄个webservice不行么?还不担心网页的修改
      

  8.   

    麻烦一点,不过可以实现:            string input = "<table class=\"a\" style=width:100px><tr><td style=\"border:1px solid #ccc\">天天开心1</td><td style=\"border:1px solid #ccc\">天天开心2</td></tr></table><table class=\"a\"><tr><td style=\"border:1px solid #ccc\">天天开心3</td></tr></table>";
                foreach (Match m in Regex.Matches(input, @"(?is)<table[^>]+class=""a""[^>]*>(<tr[^>]*><td[^>]+>(.+?)</td></tr>)+?</table>"))
                    foreach (Match m2 in Regex.Matches(m.Groups[1].Value, @"<td[^>]+>(.+?)</td>"))
                        Console.WriteLine(m2.Groups[1].Value);
    有更好的方法的,不过我的正则也只能到这个水平了
      

  9.   

                string input = @"<table class=""b""><tr><td>csdn</td></tr></table>
                    <table class=""a"" style=width:100px><tr><td style=""border:1px solid #ccc"">天天开心1</td><td style=""border:1px solid #ccc"">天天开心2</td></tr></table>
                    <table class=""a""><tr><td style=""border:1px solid #ccc"">天天开心3</td></tr></table>";
                Regex reg = new Regex(@"(?<=<table[^>]*?class=""a""[^>]*?>(?:(?!</?table).)*)<td[^>]*?>(.*?)</td>");
                foreach (Match m in reg.Matches(input))
                    Console.WriteLine(m.Groups[1].Value);
      

  10.   

    "(?is)<td[^>]class="+class1+"+[^>]>(.+?)</td>"
      

  11.   

    其实也可以放在一个iframe标签的src这样可以根据js去抓取