asp.net网页上获取其中表格中的数据(爬数据)

下面的方法获取页面中表格数据,每个页面不相同,获取的方式(主要是正则表达式)不一样,只是提供方法参考。大神勿喷,刚使用了,就记下来了。
其中数据怎么存,主要就看着怎么使用了。只是方便记录就都放在list集合中了。
 1 public List<List<string>> DataSearch(string Url)
 2         {
 3             List<string>  listR = null;
 4             List<List<string>> list = new List<List<string>>();
 5 
 6             WebRequest request = WebRequest.Create(Url); //请求url
 7             WebResponse response = request.GetResponse(); //获取url数据
 8             StreamReader reader = null;           
 9             reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
10             string str = reader.ReadToEnd(); //读取的页面数据(源码)
11 
12             reader.Close();
13             reader.Dispose();
14             response.Close();
15             string strRegexR = @"(?<=<tr>)([sS]*?)(?=</tr>)"; //构造解析表格行数据的正则表达式
16             //string strRegexD = @"(?<=<td[^>]*>[s]*?)([S]*)(?=[s]*?</td>)"; //构造解析表格列数据的正则表达式
17             //string strRegexD = @"\>(.+?)\<";
18             Regex regexR = new Regex(strRegexR);
19             MatchCollection mcRows = regexR.Matches(str); //执行匹配,获取行数据
20             
21             foreach (Match mr in mcRows )
22             {
23                     listR = new List<string>();
24                     string strRegex = @"<font.*?>(?<value>.*?)</font>";
25                     Regex regex = new Regex(strRegex);
26                     MatchCollection mcD = regex.Matches(mr.Groups[0].ToString()); //执行匹配
27 
28                     for (int i = 0; i < mcD.Count; i++)
29                     {
30                         string value = mcD[i].Groups["value"].Value;
31                         listR.Add(value);//每行的数据放在list集合中,可自行怎么处理本行数据
32                     }                    
33                 list.Add(listR);
34 
35             }
36             return list;
37         }   
View Code
原文地址:https://www.cnblogs.com/syp1Blog/p/9444377.html