使用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