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>)([\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         }   
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM