`
maybe723
  • 浏览: 44931 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

抓取网站信息

    博客分类:
  • .net
阅读更多

接触正则表达式的时间不长,感觉挺有意思,所以试着抓取了一下某网站数据.

Code:

private String getInformation(String t)
    {

        Regex r;
        Match m;
        r=new Regex("<tr\\s*bgcolor=\"#FFFFFF\">(?<1>(.|\n)*?)</tr>",RegexOptions.Compiled|RegexOptions.IgnoreCase);

        StringBuilder sql = new StringBuilder();
        for (m = r.Match(t); m.Success; m = m.NextMatch())
        {
            string buffer = m.Groups[1].Value.Trim();
            Regex rx;
            rx = new Regex("<td height=\"28\"\\s.*align=\"center\"><a href=\"(?<1>.*)\"\\s.*target=\"_blank\">(?<2>.*)</a></td>\\s*<td height=\"28\"\\s.*align=\"center\">(?<3>.*)</td>\\s*[\\s|\\S]*<td width=\"236\"\\s*align=\"center\">(?<4>.*)</td>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
          

            String companyUrl = rx.Match(buffer).Groups[1].Value.Trim();
            String companyName = rx.Match(buffer).Groups[2].Value.Trim();
            if (companyName.Contains("font"))
            {
                Regex rn;
                rn = new Regex("<font\\s*color=\"#FF0000\">(?<1>.*)</font>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
                companyName = rn.Match(companyName).Groups[1].Value.Trim();
            }
            String companyRegion = rx.Match(buffer).Groups[3].Value.Trim();
            String companyBrand = rx.Match(buffer).Groups[4].Value.Trim();
          
            sql.AppendLine("insert into information values('"+companyName+"','"+companyUrl+"','"+companyRegion+"','"+companyBrand+"');");
        }
      
        return sql.ToString();

 
    }

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics