请求网址并解析返回的html

灵灵柒33

灵灵柒33

2016-02-19 15:30

今天图老师小编要向大家分享个请求网址并解析返回的html教程,过程简单易学,相信聪明的你一定能轻松get!

  目的,把远程服务器传回的Html,解析到类里面,为GridView等提供数据源
  1 、向远程服务器Post数据
  public int PostData(string url, string data, out string info)
          {

              info = "";
              CookieContainer cc = new CookieContainer();
              HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
              request.CookieContainer = cc;
              request.Method = "POST";
              request.ContentType = "application/x-www-form-urlencoded";
              Stream requestStream = request.GetRequestStream();
              byte[] byteArray = Encoding.UTF8.GetBytes(data);
              requestStream.Write(byteArray, 0, byteArray.Length);
              requestStream.Close();
              HttpWebResponse response = request.GetResponse() as HttpWebResponse;
              Uri responseUri = response.ResponseUri;
              Stream receiveStream = response.GetResponseStream();
              Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
              StreamReader readStream = new StreamReader(receiveStream, encode);
              string result = readStream.ReadToEnd();
              info = result;
              return 0;

          }2、解析返回的html,有省略
   public ClassInfo[] GetClass(string html)
          {

              ArrayList ar = new ArrayList();
              ArrayList arr = new ArrayList();
              string table = "";
              Regex regtable = new Regex(@"(?=table.*).*?(?=/table)", RegexOptions.Singleline);
              Match ma = regtable.Match(html);
              while (ma.Success)
              {
                  if (ma.Value.Trim() != "")
                  {
                      arr.Add(HttpUtility.HtmlDecode(ma.Value));
                  }
                  ma = ma.NextMatch();
              }
              for (int i = 0; i arr.Count; i++)
              {
                  table = arr[i].ToString() + table;
              }

  
              Regex reg = new Regex(@"(?=.*?).*?(?=.*?)", RegexOptions.Singleline);
              Match m = reg.Match(table);

  
              while (m.Success)
              {
                  if (m.Value.Trim() != "")
                  {

                      ar.Add(HttpUtility.HtmlDecode(m.Value));
                  }
                  m = m.NextMatch();
              }

  
             ClassInfo[] ci = new ClassInfo[classno];
              for (int i = 0; i classno; i++)
              {
                  ci[i] = new ClassInfo();
                  ci[i].RegisterDate = (ar[i * 8 + 0]).ToString();

                  ci[i].LoginDate = (ar[i * 8 + 1]).ToString();
                  ci[i].LogoutDate = (ar[i * 8 + 2]).ToString();
                  ci[i].UseMin = ar[i * 8 + 3].ToString();
                  ci[i].ClassName = ar[i * 8 + 5].ToString();
                  ci[i].ClassType = ar[i * 8 + 6].ToString();
                  ci[i].Percent = ar[i * 8 + 7].ToString();

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

              }

   

              return ci;

  
          }
  3、定义ClassInfo类(课程类),用CodeSmith生成
   public class ClassInfo
      {
          Member Variables#region Member Variables

  
          protected string _loginDate;
          protected string _LogoutDate;
          protected string _registerDate;
          protected string _useMin;
          protected string _className;
          protected string _classType;
          protected string _percent;
          //protected string _nouse;
          #endregion

          Constructors#region Constructors

          public ClassInfo() { }

          public ClassInfo(string loginDate, string LogoutDate, string registerDate, string useMin, string className, string classType, string percent)
          {
              this._loginDate = loginDate;
              this._LogoutDate = LogoutDate;
              this._registerDate = registerDate;
              this._useMin = useMin;
              this._className = className;
              this._classType = classType;
              this._percent = percent;
          }

          #endregion

          Public Properties#region Public Properties
          //        public string NoUse
          //        {
          //            get{return _nouse;}
          //            set{ _nouse= value;}
          //        }

   

          public string LoginDate
          {
              get { return _loginDate; }
              set { _loginDate = value; }
          }

          public string LogoutDate
          {
              get { return _LogoutDate; }
              set { _LogoutDate = value; }
          }

          public string RegisterDate
          {
              get { return _registerDate; }
              set { _registerDate = value; }
          }

          public string UseMin
          {
              get { return _useMin; }
              set { _useMin = value; }
          }

          public string ClassName
          {
              get { return _className; }
              set
              {
                  if (value != null && value.Length 50)
                      throw new ArgumentOutOfRangeException("Invalid value for ClassName", value, value.ToString());
                  _className = value;
              }
          }

          public string ClassType
          {
              get { return _classType; }
              set
              {
                  if (value != null && value.Length 50)
                      throw new ArgumentOutOfRangeException("Invalid value for ClassType", value, value.ToString());
                  _classType = value;
              }
          }

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

          public string Percent
          {
              get { return _percent; }
              set
              {
                  if (value != null && value.Length 50)
                      throw new ArgumentOutOfRangeException("Invalid value for Percent", value, value.ToString());
                  _percent = value;
              }
          }

          #endregion
      }

  http://bluewater.cnblogs.com/archive/2006/06/19/429720.html

展开更多 50%)
分享

猜你喜欢

请求网址并解析返回的html

Web开发
请求网址并解析返回的html

Foxmail如何设置自动请求和返回阅读收条

电脑网络
Foxmail如何设置自动请求和返回阅读收条

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP调用ORACLE存储过程并返回结果集

ASP
ASP调用ORACLE存储过程并返回结果集

EXCEL查找并返回最后一个相同值

电脑入门
EXCEL查找并返回最后一个相同值

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

解析HTML的增强标记

Html CSS布局 Div+CSS XHTML
解析HTML的增强标记

Javascript获取某一标签的座标并返回其座标对象

Web开发
Javascript获取某一标签的座标并返回其座标对象

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Navicat for MySQL与MySQL GUI Tools功能比较

Navicat for MySQL与MySQL GUI Tools功能比较

任意角度图片旋转

任意角度图片旋转
下拉加载更多内容 ↓