注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 Cisco IOS下载
 帮助

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


2008-02-26 09:42:48
 标签: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());
            }

        }

    }
}




    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: