使用C# Winform应用程序获取网页源文件的解决方法

作者:jingxian 时间:2023-02-01 10:56:28 

在C# Winform 应用程序中,获取某网页的源文件,可以用以下方法:

首先引入名称空间
using System.IO;
using System.Net;


WebClient MyWebClient = new WebClient();

MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
Byte[] pageData = MyWebClient.DownloadData("http://www.baidu.com");
//string pageHtml = Encoding.Default.GetString(pageData);
FileStream file = new FileStream("C:\\test.html", FileMode.Create);
file.Write(pageData, 0, pageData.Length);

附,c# 获取网页源码的代码举例。
C# 获取指定网页HTML原代码可使用:WebClient WebRequest HttpWebRequest 三种方式。
当然也可使用webBrowse,有兴趣的朋友,可以自己研究下。

1,WebClient方式


private string GetWebClient(string url)
{
 string strHTML = "";
 WebClient myWebClient = new WebClient();
 Stream myStream = myWebClient.OpenRead(url);
 StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding("utf-8"));
 strHTML = sr.ReadToEnd();
 myStream.Close();
 return strHTML;
}

2,WebRequest方式


private string GetWebRequest(string url)
{
 Uri uri = new Uri(url);
 WebRequest myReq = WebRequest.Create(uri);
 WebResponse result = myReq.GetResponse();
 Stream receviceStream = result.GetResponseStream();
 StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("utf-8"));
 string strHTML = readerOfStream.ReadToEnd();
 readerOfStream.Close();
 receviceStream.Close();
 result.Close();
 return strHTML;
}

3,HttpWebRequest方式


private string GetHttpWebRequest(string url)
{
 Uri uri = new Uri(url);
 HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(uri);
 myReq.UserAgent = "User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705";
 myReq.Accept = "*/*";
 myReq.KeepAlive = true;
 myReq.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
 HttpWebResponse result = (HttpWebResponse)myReq.GetResponse();
 Stream receviceStream = result.GetResponseStream();
 StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("utf-8"));
 string strHTML = readerOfStream.ReadToEnd();
 readerOfStream.Close();
 receviceStream.Close();
 result.Close();
 return strHTML;
}

注意:“utf-8”应与指定网页的编码对应。
总结
HttpWebRequest 方式最复杂,但确提供了更多的选择性。
有的网站检测客户端的UserAgent!如163.com,如果使用WebClient WebRequest方式获取,将获取到的是错误提示页面的内容。
HttpWebRequest没有这个问题。
测试环境:WIN2003 + VS2005 + C# + winForm

标签:Winform,获取,网页源文件
0
投稿

猜你喜欢

  • Spring Security认证提供程序示例详解

    2022-11-07 18:06:40
  • springboot如何使用logback-spring配置日志格式,并分环境配置

    2023-11-10 04:37:34
  • Android 一些常用的混淆Proguard

    2021-10-13 06:46:29
  • springboot配置mysql数据库spring.datasource.url报错的解决

    2023-10-04 12:49:26
  • C# 获取文件夹里所有文件名的详细代码

    2023-01-07 02:05:20
  • C# memcached缓存使用实例代码

    2022-01-15 02:17:11
  • Java 详解垃圾回收与对象生命周期

    2022-01-21 02:54:43
  • SpringBoot项目部署到腾讯云的实现步骤

    2023-01-01 16:58:55
  • 详解C++设计模式编程中建造者模式的实现

    2022-10-25 01:33:20
  • 在Java的Hibernate框架中使用SQL语句的简单介绍

    2022-06-13 15:54:15
  • 浅谈C# 抽象类与开闭原则

    2023-11-07 11:00:08
  • Java ThreadLocal类使用详解

    2022-08-04 05:29:34
  • Springboot引用外部配置文件的方法步骤

    2022-06-14 13:29:35
  • Springcloud Eureka配置及集群代码实例

    2021-09-19 05:54:52
  • idea全局搜索快捷键超详细总结(推荐!)

    2021-08-12 20:16:18
  • C#正则实现Ubb解析类的代码

    2021-10-23 22:19:38
  • springboot 通过代码自动生成pid的方法

    2023-11-27 02:54:57
  • 零基础入门SpringMVC拦截器的配置与使用

    2023-07-17 21:59:28
  • Spring Cloud如何使用Feign构造多参数的请求

    2023-11-03 00:18:31
  • C#实现顺序表(线性表)完整实例

    2022-06-04 15:42:31
  • asp之家 软件编程 m.aspxhome.com