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

using System;

using System.Collections.Generic;

using System.Text;

using System.Net;

using System.IO;

namespace thief

{

    class Program

    {

        static void Main(string[] args)

        {

           

            try {

                WebClient MyWebClient = new WebClient();

                MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。

                Byte[] pageData = MyWebClient.DownloadData(http://www.163.com); //从指定网站下载数据

                string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句             

                //string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句

                Console.WriteLine(pageHtml);//在控制台输入获取的内容

                using (StreamWriter sw = new StreamWriter("c:\\test\\ouput.html"))//将获取的内容写入文本

                {

                    sw.Write(pageHtml);

                }

                Console.ReadLine(); //让控制台暂停,否则一闪而过了              

            }

            catch(WebException webEx) {

                Console.WriteLine(webEx.Message.ToString());

            }

        }

    }

}

改进一下,加入定时器后

using System;

using System.Text;

using System.Timers;

using System.Net;

using System.IO;

//<summary>

//每隔5秒钟将指定网页的内容抓取下来,并以文件形式保存到c:\test目录中

//</summary>

namespace TimerTest

{

    class Program

    {

        public static string outFileName = "";                  //生成的文件名

        public static string myUrl = "http://bxg.cfchina.cn";    //要抓取的网页

        static void Main(string[] args)

        {

            Timer mytimer = new Timer();

            mytimer.Elapsed +=new ElapsedEventHandler(GetUrl);//指定定时器的事件

            mytimer.Interval = 5000;//每隔5秒抓一次

            mytimer.Start();

            mytimer.Enabled = true;

            while (Console.Read() != 'q') //直到按小写字母q退出,否则一直抓取下去

            {

            }

        }

        //定时器事件内容

        static void GetUrl(object source, ElapsedEventArgs e)

        {

            try

            {

                WebClient MyWebClient = new WebClient();

                MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。

                Byte[] pageData = MyWebClient.DownloadData(myUrl);//从指定网站下载数据

                string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句              

                //string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句

                //Console.WriteLine(pageHtml);//在控制台输入获取的内容

                outFileName = "C:\\test\\" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("-", "") + ".html";

                using (StreamWriter sw = new StreamWriter(outFileName))//将获取的内容写入文本

                {

                    sw.Write(pageHtml);

                }

                Console.WriteLine(outFileName);  //输出保存后的文件名                      

            }

            catch (WebException webEx)

            {

                Console.WriteLine(webEx.Message.ToString());

            }

        }

posted @ 2012-07-01 10:35  无忧无虑Coding  阅读(86)  评论(0编辑  收藏  举报