• 用Asp.Net c#写的采集小例子


    用Asp.Net c#写的采集小例子 
    前台页面:
    <%@ Page language="c#" Codebehind="Gethttpcode.aspx.cs" AutoEventWireup="false" Inherits="coll_net.GetPageHtml" %> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 
    <HTML> 
     
    <HEAD> 
      
    <title>采集例子</title> 
      
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> 
      
    <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://www.0579.info/ 
           </asp:TextBox> 
       
    <br> 
       
    <asp:Button id="WebClientButton" Runat="server" Text="用WebClient得到"></asp:Button> 
       
    <asp:Button id="GetText" style="Z-INDEX: 101; LEFT: 208px; POSITION: absolute; TOP: 72px" runat="server" 
        Text
    ="GetText"></asp:Button> 
       
    <br> 
       
    <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> 


     

     



    后台源代码:
    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; 
    using System.Text.RegularExpressions; 
    namespace coll_net 

     
    /// <summary> 
     
    /// GetPageHtml 的摘要说明。 
     
    /// </summary> 
     public class GetPageHtml : System.Web.UI.Page 
     { 
      
    protected System.Web.UI.WebControls.TextBox UrlText; 
      
    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.Button GetText; 
      
    protected System.Web.UI.WebControls.Button Button1; 
      
    private string PageUrl = ""

      
    private void Page_Load(object sender, System.EventArgs e) 
      { 
       
    // 在此处放置用户代码以初始化页面 
      } 

      
    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+"" "); 
      } 


       



      
    #region Web 窗体设计器生成的代码 
      
    override protected void OnInit(EventArgs e) 
      { 
       
    // 
       
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 
       
    // 
       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 
     } 



     



    以下是引用片段:
     
    这里是针对一些利用 isa server proxy 上网的. 
    修改下  WebRequest 方法: 
    PageUrl 
    = UrlText.Text; 
    WebRequest  request 
    = WebRequest.Create(PageUrl); 
    WebProxy myProxy
    =new WebProxy();    
    myProxy 
    = (WebProxy)request.Proxy; 
    myProxy.Address 
    = new Uri("http://代理服务器:端口"); 
    myProxy.Credentials 
    = new NetworkCredential("用户名""密码""域名"); 
    request.Proxy 
    = myProxy; 
    WebResponse response 
    = request.GetResponse(); 



    以下是引用片段:
    另一个实例 〔转〕 
    private void Page_Load(object sender, System.EventArgs e) 
    {  
     
    string Url = "/blog/upload/20051126115210282.gif"
     
    string StringFileName = Url.Substring(Url.LastIndexOf("/"+ 1); 
     
    string StringFilePath = Request.PhysicalApplicationPath; 
     
    if(!StringFilePath.EndsWith("/")) StringFilePath += "/"
     MSXML2.XMLHTTP _xmlhttp 
    = new MSXML2.XMLHTTPClass(); 
     _xmlhttp.open(
    "GET",Url,false,null,null); 
     _xmlhttp.send(
    ""); 
     
    if( _xmlhttp.readyState == 4 ) 
     { 
      
    if(System.IO.File.Exists(StringFilePath + StringFileName))  
       System.IO.File.Delete(StringFilePath 
    + StringFileName); 
      System.IO.FileStream fs 
    = new System.IO.FileStream(StringFilePath + StringFileName, System.IO.FileMode.CreateNew); 
      System.IO.BinaryWriter w 
    = new System.IO.BinaryWriter(fs); 
      w.Write((
    byte[])_xmlhttp.responseBody); 
      w.Close(); 
      fs.Close(); 
      Response.Write (
    "文件已经得到。<br><a href=’" + Request.ApplicationPath + StringFileName +"’ target=’_blank’>"); 
      Response.Write (
    "查看" + StringFileName + "</a>"); 
     } 
     
    else 
     Response.Write (_xmlhttp.statusText); 
     Response.End(); 

  • 相关阅读:
    Hadoop 回收站
    Sparkstreaming reduceByKeyAndWindow(_+_, _-_, Duration, Duration) 的源码/原理解析
    spark streaming updateStateByKey 用法
    spark streaming 直连 kafka 分区
    sparkStreaming 练习
    json demo
    spark与flume整合
    spark sql 入门
    【面试】c++单例模式
    Python高级笔记(十一)装饰器【面试】
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1540610.html
Copyright © 2020-2023  润新知