您的位置:首页 > 编程语言 > C#

C#远程获取/读取网页内容

2014-08-07 10:45 387 查看

转载自 :http://blog.csdn.net/gisfarmer/article/details/2836904

 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Net;
  5. using System.IO;
  6. namespace thief
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             
  13.             try {
  14.                 WebClient MyWebClient = new WebClient();
  15.                 MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。
  16.                 Byte[] pageData = MyWebClient.DownloadData(http://www.163.com); //从指定网站下载数据
  17.                 string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句              
  18.                 //string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句
  19.                 Console.WriteLine(pageHtml);//在控制台输入获取的内容
  20.                 using (StreamWriter sw = new StreamWriter("c://test//ouput.html"))//将获取的内容写入文本
  21.                 {
  22.                     sw.Write(pageHtml);
  23.                 }
  24.                 Console.ReadLine(); //让控制台暂停,否则一闪而过了               
  25.             }
  26.             catch(WebException webEx) {
  27.                 Console.WriteLine(webEx.Message.ToString());
  28.             }
  29.         }
  30.     }
  31. }

改进一下,加入定时器后

  1. using System;
  2. using System.Text;
  3. using System.Timers;
  4. using System.Net;
  5. using System.IO;
  6. //<summary>
  7. //每隔5秒钟将指定网页的内容抓取下来,并以文件形式保存到c:/test目录中
  8. //</summary>
  9. namespace TimerTest
  10. {
  11.     class Program
  12.     {
  13.         public static string outFileName = "";                  //生成的文件名
  14.         public static string myUrl = "http://bxg.cfchina.cn";    //要抓取的网页
  15.         static void Main(string[] args)
  16.         {
  17.             Timer mytimer = new Timer();
  18.             mytimer.Elapsed +=new ElapsedEventHandler(GetUrl);//指定定时器的事件
  19.             mytimer.Interval = 5000;//每隔5秒抓一次
  20.             mytimer.Start();
  21.             mytimer.Enabled = true;
  22.             while (Console.Read() != 'q') //直到按小写字母q退出,否则一直抓取下去
  23.             {
  24.             }
  25.         }
  26.         //定时器事件内容
  27.         static void GetUrl(object source, ElapsedEventArgs e)
  28.         {
  29.             try
  30.             {
  31.                 WebClient MyWebClient = new WebClient();
  32.                 MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。
  33.                 Byte[] pageData = MyWebClient.DownloadData(myUrl);//从指定网站下载数据
  34.                 string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句              
  35.                 //string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句
  36.                 //Console.WriteLine(pageHtml);//在控制台输入获取的内容
  37.                 outFileName = "C://test//" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("-", "") + ".html";
  38.                 using (StreamWriter sw = new StreamWriter(outFileName))//将获取的内容写入文本
  39.                 {
  40.                     sw.Write(pageHtml);
  41.                 }
  42.                 Console.WriteLine(outFileName);  //输出保存后的文件名                      
  43.             }
  44.             catch (WebException webEx)
  45.             {
  46.                 Console.WriteLine(webEx.Message.ToString());
  47.             }
  48.         }
  49.     }
  50. }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: