zoukankan      html  css  js  c++  java
  • 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());

                }

            }

  • 相关阅读:
    luarocks argparse
    Shell中for循环的几个常用写法
    linux
    Docker修改镜像源为阿里云
    ntpdate更新服务器时间失败
    linux文本三剑客之 sed
    [Union]C++中Union学习笔记
    [sublime] 利用sublime搭建C/C++编译器
    [wordpress]WordPress地址(URL)错误,修改解决方案
    [wordpress]更新插件时,免去FTP操作
  • 原文地址:https://www.cnblogs.com/sunrisefengfei/p/12392022.html
Copyright © 2011-2022 走看看