首页 > 代码库 > C#远程获取/读取网页内容
C#远程获取/读取网页内容
转载自 :http://blog.csdn.net/gisfarmer/article/details/2836904
- 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());
- }
- }
- }
- }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。