日期:2014-05-17  浏览次数:21112 次

正则抓取网页table并把获取的数据存入数据库


//创建datatable
        DataTable dt = new DataTable();
        dt.Columns.Add("SeaNum", typeof(int));//海区编号
        dt.Columns.Add("SeaName", typeof(string));//海区名称
        dt.Columns.Add("WaveHeight", typeof(string));//浪高
        dt.Columns.Add("BayHigh", typeof(string));//涌高

        dt.Columns.Add("SST", typeof(int));//海温
        dt.Columns.Add("AverMaxflowrate", typeof(string));//平均流速/最大流速
        dt.Columns.Add("Averflowflowof", typeof(string));//平均流向/最大流向
        dt.Columns.Add("Time", typeof(string));//时间

        dt.TableName = "jhhyyb";
        //Url = "http://www.nmefc.gov.cn/nr/jhhyhjyb.aspx";
        string html = GetWebContent1("http://www.nmefc.gov.cn/nr/jhhyhjyb.aspx");
        string pattern = @"(?is)<table[^>]*?bgcolor=""#CCCCCC""[^>]*?>.*?</table>";
         html = Regex.Match(html,pattern).Value;
         
        foreach(Match m in Regex.Matches(html,@"(?<=<td[^>]+>).*?(?=</td>)"))
         {
            
             //Response.Write(m.Value);
           
         }
这里已经获取到网页table的数据了 怎么循环截取把获取到的数据存到数据库里
table 正则 数据库

------解决方案--------------------
你可以把匹配到的数据放到list中,然后再插入数据库
string html="yourhtml";
foreach(Match m in Regex.Matches(html,@"(?<=<td[^>]+>).*?(?=</td>)"))
{
   list.Add(m.Value);
}
insert into table(c1,c2,....) values(list[0],list[1],......)//c1,c2你的列名
------解决方案--------------------
引用:
引用:引用:你可以把匹配到的数据放到list中,然后再插入数据库
string html="yourhtml";
foreach(Match m in Regex.Matches(html,@"(?<=<td[^>]+>).*?(?=</td>)"))
{
   list.Add(m.Value……

你怎么写的???
------解决方案--------------------
引用:
引用:引用:这个方法怎么写的
LoadDataSet

这个操作数据库 是调用的企业类库 private static Database db = DatabaseFactory.CreateDatabase("DBconnStr");

插入就直接执行NonExceuteQuery()方法就行了啊
------解决方案--------------------
引用:
引用:引用:引用:引用:这个方法怎么写的
LoadDataSet

这个操作数据库 是调用的企业类库 private static Database&nb