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

    利用.NET框架提供的 WebClient类 和 WebRequest类,我们可以很轻易地得到给定URL地址的源代码,很简单,以下是C#的完整的例子.


    查看例子


    GetPageHtml.aspx


    <%@ Page language="c#" validateRequest = "false" Codebehind="GetPageHtml.aspx.cs"
    AutoEventWireup="false" Inherits="eMeng.Exam.GetPageHtml" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>得到网页源代码</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="aspNetBuffer" method="post" runat="server">
    <div align="center" style="FONT-WEIGHT: bold">得到任意网页源代码</div>
    <asp:TextBox id="UrlText" runat="server" Width="400px">http://dotnet.aspx.cc/content.aspx
    </asp:TextBox>
    <asp:Button id="WebClientButton" Runat="server" Text="用WebClient得到"></asp:Button>
    <asp:Button id="WebRequestButton" runat="server" Text="用WebRequest得到"></asp:Button>
    <br>
    <asp:TextBox id="ContentHtml" runat="server" Width="100%" Height="360px" TextMode="MultiLine">
    </asp:TextBox>
    </form>
    </body>
    </HTML>


    GetPageHtml.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;
    using System.IO;
    using System.Net;
    using System.Text;


    namespace eMeng.Exam
    {
    /// <summary>
    /// GetPageHtml 的摘要说明。
    /// </summary>
    public class GetPageHtml : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button WebClientButton;
    protected System.Web.UI.WebControls.Button WebRequestButton;
    protected System.Web.UI.WebControls.TextBox ContentHtml;
    protected System.Web.UI.WebControls.TextBox UrlText;
    private string PageUrl = "";

    private void Page_Load(object sender, System.EventArgs e)
    {}


    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    InitializeComponent();
    base.OnInit(e);
    }


    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click);
    this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click);
    this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion

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


    ///方法一:
    Byte[] pageData = wc.DownloadData(PageUrl);
    ContentHtml.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 WebRequestButton_Click(object sender, System.EventArgs e)
    {
    PageUrl = UrlText.Text;
    WebRequest request = WebRequest.Create(PageUrl);
    WebResponse response = request.GetResponse();
    Stream resStream = response.GetResponseStream();
    StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
    ContentHtml.Text = sr.ReadToEnd();
    resStream.Close();
    sr.Close();
    }
    }
    }


  • 相关阅读:
    poj 3253超时
    poj 3617输出格式问题
    dfs的返回条件
    hdu1010感想
    2018.7.19训练赛总结
    2018.7.12训练赛 -G
    汇编实验16 编写包含多个功能子程序的中断例程——浅谈直接地址表
    新的一年来了,先看一看自己的编程能力吧!
    汇编实验15:安装新的int 9中断例程
    汇编实验14:访问CMOS RAM
  • 原文地址:https://www.cnblogs.com/King0502/p/2019420.html
Copyright © 2011-2022 走看看