首页 > 编程 > .NET > 正文

利用.NET框架提供的 WebClient类 和 WebRequest类,我们可以很轻易地得到给定U

2024-07-10 13:07:17
字体:
来源:转载
供稿:网友

getpagehtml.aspx<%[email protected] 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" >得到任意网页源代码</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.csusing 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;
using system.text.regularexpressions;
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;
protected system.web.ui.webcontrols.button gettext;
private string pageurl = "";

private void page_load(object sender, system.eventargs e)
 ...{}

web form designer generated code#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.gettext.click += new system.eventhandler(this.gettext_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();
}

private void gettext_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();
    contenthtml.text = regex.replace(contenthtml.text,"<[^>]*>", "");
    //替换空格
    contenthtml.text = regex.replace(contenthtml.text,"/s+", " ");
 }
}
}

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表