zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    LeetCode之Z字形变换
    统计文本中字母的频次(不区分大小写)
    凯撒密码实现
    DES 实现
    cmake 学习
    ubuntu18 ssh服务器拒绝连了密码
    Ubuntu13 安装vim
    面向对象和面向过程的理解
    图像变换
    基于关键帧的RGB-D视觉惯性里程计
  • 原文地址:https://www.cnblogs.com/syp1Blog/p/9444377.html
Copyright © 2011-2022 走看看