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     }
  • 相关阅读:
    C#UDP编程总结
    C# TcpListener的编程要点
    三维地图添加切片“lods of null”报错
    三维地图添加切片图层坐标系报错
    03 三维地图添加切片图层
    从ArcMap 10.6.1发布服务到Portal,服务器地址错误
    19 React——Ant Design(按需加载样式文件)
    20 React项目生成及部署
    18 React——Ant Design的使用
    17 React——路由的模块化及嵌套
  • 原文地址:https://www.cnblogs.com/vsSure/p/7881777.html
Copyright © 2011-2022 走看看