下面的方法獲取頁面中表格數據,每個頁面不相同,獲取的方式(主要是正則表達式)不一樣,只是提供方法參考。大神勿噴,剛使用了,就記下來了。
其中數據怎么存,主要就看着怎么使用了。只是方便記錄就都放在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>)([\s\S]*?)(?=</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 }