请求网址并解析返回的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);

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

  
              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();

              }

   

              return ci;

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

  
          }
  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;
              }
          }

          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存储过程并返回结果集

解析HTML的增强标记

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

lol偷钱流符文搭配推荐

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

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

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

Jquery Ajax学习实例6 向WebService发出请求返回DataSet(XML)

Web开发
Jquery Ajax学习实例6 向WebService发出请求返回DataSet(XML)

lolAD刺客新符文搭配推荐

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

Navicat for MySQL与MySQL GUI Tools功能比较

Navicat for MySQL与MySQL GUI Tools功能比较

任意角度图片旋转

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