网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 定作论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 交易代码 > ASP.Net精品代码 > 正文
利用WebClient和WebRequest类获得网页源代码
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/11/21

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

GetPageHtml.aspx

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

GetPageHtml.aspx.cs

  1. using System; 
  2. using System.Collections; 
  3. using System.ComponentModel; 
  4. using System.Data; 
  5. using System.Drawing; 
  6. using System.Web; 
  7. using System.Web.SessionState; 
  8. using System.Web.UI; 
  9. using System.Web.UI.WebControls; 
  10. using System.Web.UI.HtmlControls; 
  11. using System.IO; 
  12. using System.Net; 
  13. using System.Text; 
  14. using System.Text.RegularExpressions; 
  15. namespace eMeng.Exam 
  16. /// <summary> 
  17. /// GetPageHtml 的摘要说明。 
  18. /// </summary> 
  19. public class GetPageHtml : System.Web.UI.Page 
  20. protected System.Web.UI.WebControls.Button WebClientButton; 
  21. protected System.Web.UI.WebControls.Button WebRequestButton; 
  22. protected System.Web.UI.WebControls.TextBox ContentHtml; 
  23. protected System.Web.UI.WebControls.TextBox UrlText; 
  24. protected System.Web.UI.WebControls.Button GetText; 
  25. private string PageUrl = ""
  26.  
  27. private void Page_Load(object sender, System.EventArgs e) 
  28.  {} 
  29.  
  30. #region Web Form Designer generated code 
  31. override protected void OnInit(EventArgs e) 
  32.  { 
  33.  InitializeComponent(); 
  34.  base.OnInit(e); 
  35.  
  36. /// <summary> 
  37. /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
  38. /// 此方法的内容。 
  39. /// </summary> 
  40. private void InitializeComponent() 
  41. {     
  42.     this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click); 
  43.     this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click); 
  44.     this.GetText.Click += new System.EventHandler(this.GetText_Click); 
  45.     this.Load += new System.EventHandler(this.Page_Load); 
  46.  
  47. #endregion 
  48.  
  49. private void WebClientButton_Click(object sender, System.EventArgs e) 
  50.  PageUrl = UrlText.Text; 
  51.  WebClient wc = new WebClient(); 
  52.  wc.Credentials = CredentialCache.DefaultCredentials; 
  53.  
  54.  ///方法一: 
  55.  Byte[] pageData = wc.DownloadData(PageUrl); 
  56.  ContentHtml.Text = Encoding.Default.GetString(pageData);    
  57.  
  58.  
  59.  /// 方法二: 
  60.  /// ***************代码开始********** 
  61.  /// Stream resStream = wc.OpenRead(PageUrl); 
  62.  /// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default); 
  63.  /// ContentHtml.Text = sr.ReadToEnd(); 
  64.  /// resStream.Close(); 
  65.  /// **************代码结束******** 
  66.  ///  
  67. wc.Dispose();   
  68.  
  69. private void WebRequestButton_Click(object sender, System.EventArgs e) 
  70.  PageUrl = UrlText.Text; 
  71.  WebRequest  request = WebRequest.Create(PageUrl); 
  72.  WebResponse response = request.GetResponse(); 
  73.  Stream resStream = response.GetResponseStream();    
  74.  StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); 
  75.  ContentHtml.Text = sr.ReadToEnd(); 
  76.  resStream.Close();  
  77.  sr.Close(); 
  78.  
  79. private void GetText_Click(object sender, System.EventArgs e) 
  80.  { 
  81.     PageUrl = UrlText.Text; 
  82.     WebRequest  request = WebRequest.Create(PageUrl); 
  83.     WebResponse response = request.GetResponse(); 
  84.     Stream resStream = response.GetResponseStream();     
  85.     StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); 
  86.     ContentHtml.Text = sr.ReadToEnd(); 
  87.     resStream.Close();  
  88.     sr.Close(); 
  89.     ContentHtml.Text = Regex.Replace(ContentHtml.Text,"<[^>]*>"""); 
  90.     //替换空格 
  91.     ContentHtml.Text = Regex.Replace(ContentHtml.Text,"\\s+"" "); 
  92.  } 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
湘ICP备09003080号