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

改进一下,加入定时器后

      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. }

C#远程获取/读取网页内容的更多相关文章

  1. C#远程获取图片文件流的方法【很通用】

    因为之前写的代码,也能获取到图片流信息,但是会是凌乱的线条,后百度得这个方法,必须记录一下 C# try { WebRequest myrequest = WebRequest.Create(Http ...

  2. Asp.Net使用代理IP远程获取数据

    /// <summary> /// 远程获取数据 /// </summary> /// <param name="url">url</pa ...

  3. windows和linux下如何远程获取操作系统版本和主机名

    远程获取windows和linux操作系统版本和主机名需要具备以下条件: 假设 主机A(windows 7),ip:192.168.12.2 主机B(centos 6.3),ip:192.168.12 ...

  4. Vue实现远程获取路由与页面刷新导致404错误的解决

    一.背景 先简单介绍一下现在项目情况:前后端分离,后端服务是Java写的,前端是Vue+ElementUI. 最近的一个需求是:通过后端Api去获取前端路由表,原因是每个登录角色对应的前端路由表可能是 ...

  5. JS远程获取网页源代码的例子

    js代码获取网页源代码. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> < ...

  6. C#通过属性名称获取(读取)属性值的方法

    之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...

  7. Xamarin.Android 调用Web Api(通过ListView展示远程获取的数据)

    xamarin.android如何调用sqlserver 数据库呢(或者其他的),很多新手都会有这个疑问.xamarin.android调用远程数据主要有两种方式: 在Android中保存数据或调用数 ...

  8. php远程获取图片或文件信息(get_headers,fsocketopen,curl)

    <?php if(!function_exists("remote_filesize")){ /** * 获取远程或本地文件信息 * @param string $strUr ...

  9. 基于HttpClient、Jsoup的爬虫获取指定网页内容

    不断尝试,发现越来越多有趣的东西,刚刚接触Jsoup感觉比正则表达式用起来方便,但也有局限只适用HTML的解析. 不能尝试运用到四则运算中(工作室刚开始联系的小程序). 在原来写的HttpClient ...

随机推荐

  1. ORA-25153: Temporary Tablespace is Empty解决方法

    SQL> @/tmp/4.txt create table huang_1 (deptno number,dname varchar2(19),loc varchar2(20)) * ERROR ...

  2. 解决Linux下Oracle中文乱码的一些心得体会 ,转自

    以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找 ...

  3. cocos2dx Sprite的多种创建方法

    1.通过文件创建 Sprite *bg = Sprite::create("backGround.jpg"); 2.通过图片的某个区域创建 SpriteFrame *frame = ...

  4. 011_hasCycle

    /* * Author :SJQ * * Time :2014-07-16-20.21 * */ #include <iostream> #include <cstdio> # ...

  5. mysql 查询大量数据内存溢出

    使用非buffer 的sql 查询 比如pymysql 的 pymysql.cursor.SSCursion

  6. 对于js原型和原型链继承的简单理解(第一种,原型链继承)

    原型是js中的难点加重点,也是前端面试官最爱问的问题之一,因为面试官可以通过被面试者对原型的理解.来判断被面试者对js的熟悉程度. 原型的定义 Js所有的函数都有一个prototype属性,这个属性引 ...

  7. AJAX 跨域

    1.说到ajax就会遇到的两个问题 1.1AJAX以何种格式来交换数据                    1.自定义字符串 2.XML描述 3.JSON描述(建议使用)          1.2如 ...

  8. js大文件分割上传

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  9. U盘装系统系列二—-如何设置U盘启动

    老毛桃U盘启动制作好之后,如何设置U盘启动呢?我的是华硕的电脑,开机后按F2进入BIOS设置(不同主板可能不一样,比如有的是按向下键或者Del键,可以在网上查下看看),按Tab键选中Boot:按向下键 ...

  10. JVM调优总结 + jstat 分析(转)

    [转] JVM调优总结 + jstat 分析 JVM调优总结 + jstat 分析 jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒 ...