下面的方法获取页面中表格数据,每个页面不相同,获取的方式(主要是正则表达式)不一样,只是提供方法参考。大神勿喷,刚使用了,就记下来了。
其中数据怎么存,主要就看着怎么使用了。只是方便记录就都放在list集合中了。
public List<List<string>> DataSearch(string Url)
{
List<string> listR = null;
List<List<string>> list = new List<List<string>>(); WebRequest request = WebRequest.Create(Url); //请求url
WebResponse response = request.GetResponse(); //获取url数据
StreamReader reader = null;
reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
string str = reader.ReadToEnd(); //读取的页面数据(源码) reader.Close();
reader.Dispose();
response.Close();
string strRegexR = @"(?<=<tr>)([\s\S]*?)(?=</tr>)"; //构造解析表格行数据的正则表达式
//string strRegexD = @"(?<=<td[^>]*>[\s]*?)([\S]*)(?=[\s]*?</td>)"; //构造解析表格列数据的正则表达式
//string strRegexD = @"\\>(.+?)\\<";
Regex regexR = new Regex(strRegexR);
MatchCollection mcRows = regexR.Matches(str); //执行匹配,获取行数据 foreach (Match mr in mcRows )
{
listR = new List<string>();
string strRegex = @"<font.*?>(?<value>.*?)</font>";
Regex regex = new Regex(strRegex);
MatchCollection mcD = regex.Matches(mr.Groups[].ToString()); //执行匹配 for (int i = ; i < mcD.Count; i++)
{
string value = mcD[i].Groups["value"].Value;
listR.Add(value);//每行的数据放在list集合中,可自行怎么处理本行数据
}
list.Add(listR); }
return list;
}