zoukankan      html  css  js  c++  java
  • [转帖]利用WebClient和WebRequest类获得网页源代码

    GetURLHtml.aspx

    <%@ Page language="c#" Codebehind="GetURLHtml.aspx.cs" Src="GetURLHtml.aspx.cs" AutoEventWireup="false" Inherits="Lion.Web.Forum.WebForm1" %>
    <HTML>
     <HEAD>
      <title>Lion互动网络=>利用WebClient和WebRequest类获得网页源代码</title>
      <META http-equiv="Content-Type" content="text/html; charset=gb2312">
     </HEAD>
     <body>
      <form runat="server">
       <asp:TextBox id="UrlText" runat="server" Width="50%">http://www.lionsky.net/mywebsite/index.aspx<;/asp:TextBox>
       <asp:Button id="Button1" runat="server" Text="用WebClient得到"></asp:Button> 
       <asp:Button id="Button2" runat="server" Text="用WebRequest得到"></asp:Button><BR>
       <asp:TextBox id="ContentHtml" runat="server" Width="100%" Height="360px" TextMode="MultiLine"></asp:TextBox>
      </form>
     </body>
    </HTML>

    GetURLHtml.aspx.Cs

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    namespace Lion.Web.Forum
    {
     /// <summary>
     /// WebForm1 的摘要说明。
     /// </summary>
     public class WebForm1 : System.Web.UI.Page
     {
      protected System.Web.UI.WebControls.TextBox TextBox1;
      protected System.Web.UI.WebControls.Button Button1;
      protected System.Web.UI.WebControls.Button Button2;
      protected System.Web.UI.WebControls.TextBox UrlText;
      protected System.Web.UI.WebControls.TextBox ContentHtml;
      protected System.Web.UI.WebControls.TextBox TextBox2;
     
      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
     
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {    
       this.Button1.Click += new System.EventHandler(this.Button1_Click);
       this.Button2.Click += new System.EventHandler(this.Button2_Click);

      }
      #endregion

      private void Button1_Click(object sender, System.EventArgs e)
      {
       string PageUrl = UrlText.Text;
       System.Net.WebClient wc = new System.Net.WebClient();
       wc.Credentials = System.Net.CredentialCache.DefaultCredentials;

       ///方法一:
       Byte[] pageData = wc.DownloadData(PageUrl);
       ContentHtml.Text = System.Text.Encoding.Default.GetString(pageData);

       /// 方法二:
       /// ***************代码开始**********
       /// Stream resStream = wc.OpenRead(PageUrl);
       /// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
       /// ContentHtml.Text = sr.ReadToEnd();
       /// resStream.Close();
       /// **************代码结束********
       ///
       wc.Dispose();  

      }

      private void Button2_Click(object sender, System.EventArgs e)
      {
       string PageUrl = UrlText.Text;
       System.Net.WebRequest  request = System.Net.WebRequest.Create(PageUrl);
       System.Net.WebResponse response = request.GetResponse();
       System.IO.Stream resStream = response.GetResponseStream();
       System.IO.StreamReader sr = new System.IO.StreamReader(resStream, System.Text.Encoding.Default);
       ContentHtml.Text = sr.ReadToEnd();
       resStream.Close();
       sr.Close();

      }
     }
    }
  • 相关阅读:
    Batch
    Batch
    《mysql必知必会》学习_第17章
    指针实现时间复杂度为O(n*logN)的排序算法(归并排序算法)
    《自控力》读书笔记
    Leetcode 49. Group Anagrams (242.Valid Anagram)
    Leetcode43. Multiply Strings
    Leetcode 233. Number of Digit One
    Python 格式化输出占位符替换
    Python字符串拼接
  • 原文地址:https://www.cnblogs.com/goody9807/p/218464.html
Copyright © 2011-2022 走看看