zoukankan      html  css  js  c++  java
  • C#基础 读取网页内容 代码示例

      C#读取网页内容主要有使用WebClient和使用HttpWebResponse两种方法,下面我分别写了两种方法以做示例。

      其中将内容输出到文件中的方法,若不了解需先阅读:

      C#基础 字符串读取/写入文本文件 代码示例

     1     public class WebCrawler
     2     {
     3         /// <summary>
     4         /// 使用WebClient,将指定网址的内容输出到指定文件内
     5         /// </summary>
     6         /// <param name="url">网址</param>
     7         /// <param name="path">输出文件路径</param>
     8         /// <param name="encoding">文件编码格式</param>
     9         public void GetContextByClient(string url, string path, Encoding encoding)
    10         {
    11             WebClient MyWebClient = new WebClient();
    12             //获取或设置用于向Internet资源的请求进行身份验证的网络凭据
    13             MyWebClient.Credentials = CredentialCache.DefaultCredentials;
    14             //从指定网站下载数据
    15             byte[] pageData = MyWebClient.DownloadData(url);
    16             //使用指定字符集,转换为字符串
    17             string pageHtml = encoding.GetString(pageData);
    18             //在控制台输出获取的内容
    19             Console.WriteLine(pageHtml);
    20             //写入文件
    21             System.IO.File.WriteAllBytes(path, pageData);
    22         }
    23         /// <summary>
    24         /// 使用HttpWebResponse,将指定网址的内容输出到指定文件内
    25         /// </summary>
    26         /// <param name="url">网址</param>
    27         /// <param name="path">输出文件路径</param>
    28         /// <param name="encoding">文件编码格式</param>
    29         public void GetContextByHttp(string url, string path, Encoding encoding)
    30         {
    31             Uri httpURL = new Uri(url);
    32             //HttpWebRequest类继承于WebRequest,并没有自己的构造函数
    33             //需通过WebRequest的Creat方法建立,并进行强制的类型转换 
    34             HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
    35             ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换
    36             HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
    37             //GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容
    38             //若成功取得网页的内容,则以System.IO.Stream形式返回,
    39             //若失败则产生ProtoclViolationException错误。
    40             // 在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理 
    41             Stream respStream = httpResp.GetResponseStream();
    42             ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以
    43             ///StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾 
    44             StreamReader respStreamReader = new StreamReader(respStream, encoding);
    45             string context = respStreamReader.ReadToEnd();
    46             respStream.Close();
    47             StreamWriter sw = new StreamWriter(path, false, encoding);
    48             sw.Write(context);
    49         }
    50     }
  • 相关阅读:
    webpack 模块化 原理
    nodejs 程序 调试
    inno打包教程
    原生xhr、fetch 请求的拦截。mock 技术原理
    package.json 字段说明
    npm 依赖包 的管理【即 node_modules目录的设计原理】
    现在浏览器、webview 中 css的兼容性问题。
    安卓APP(H5本地打包apk应用)
    npm 脚本
    linux系统 离线安装node和nginx(即npm包)
  • 原文地址:https://www.cnblogs.com/vsSure/p/7881777.html
Copyright © 2011-2022 走看看