C#获取指定网页HTML原代码可使用 WebClient WebRequest HttpWebRequest 三种方式来实现。

当然也可使用webBrowse!在此就不研究webBrowse如何获取了。

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

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

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 就没问题。

源码下载:http://files.cnblogs.com/zjfree/GetHTML.rar

测试环境:WIN2003 + VS2005 + C# + winForm

C# 之【获取网页】的更多相关文章

  1. telnet建立http连接获取网页HTML内容

    利用telnet可以与服务器建立http连接,获取网页,实现浏览器的功能.它对于需要对http header进行观察和测试到时候非常方便.因为浏览器看不到http header. 步骤如下: 1. 运 ...

  2. C#获取网页的HTML码、下载网站图片、获取IP地址

    1.根据URL请求获取页面HTML代码 /// <summary> /// 获取网页的HTML码 /// </summary> /// <param name=" ...

  3. Java 网络爬虫获取网页源代码原理及实现

    Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL ...

  4. c#利用WebClient和WebRequest获取网页源代码的比较

    前几天举例分析了用asp+xmlhttp获取网页源代码的方法,但c#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取 ...

  5. 【转】如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS

    地址: http://blog.csdn.net/hujkay作者:Jekkay Hu(34538980@qq.com)关键词:Windows,curl,ssl,  visual c++ 2005, ...

  6. C语言之socket获取网页源码

    写爬虫也许你用的是python,类似urlopen(url).read()即可获得普通的网页的源码,或者用的java的网络库加上流操作,或者其他高级语言.但你有没有想过使用C语言来实现呢?我曾经以为用 ...

  7. WebRequest 获取网页乱码

    问题:在用WebRequest获取网页源码时得到的源码是乱码. 原因:1,编码不对 解决办法:设置对应编码 WebRequest request = WebRequest.Create(Url);We ...

  8. php正则获取网页标题、关键字、网页描述代码

    php正则获取网页关键字,代码如下: function get_keywords($html) { $html=strtolower($html); preg_match("@<hea ...

  9. C# HttpWebRequest 绝技 根据URL地址获取网页信息

    如果要使用中间的方法的话,可以访问我的帮助类完全免费开源:C# HttpHelper,帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取 1.第一招,根据URL地 ...

  10. php获取网页中图片并保存到本地

    php获取网页中图片并保存到本地的代码,将网页中图片保存本地文件夹: save_img("http://www.jbxue.com" ?>

随机推荐

  1. 【原】关于IPcamera几个问题的思考

    安全性: 1.RTSP连接的权限管理. 2.视频加密(一般采用选择性加密算法,如对运动矢量,量化参数等进行加密.) 3.数字水印技术(用于版权等认证) 稳定性: 1.mobileIP 是用来进行丢包模 ...

  2. 2D游戏编程5—锁定频率

    核心利用win心跳函数GetTickCount利用差量锁定fps,如下代码锁定30fps,缺点为如果计算机不能以30fps运行,程序将低于30fps #define WIN32_LEAN_AND_ME ...

  3. ActiveMQ入门实例(转)

    1.下载ActiveMQ 去官方网站下载:http://activemq.apache.org/ 2.运行ActiveMQ 解压缩apache-activemq-5.5.1-bin.zip,然后双击a ...

  4. 用LINQPad加上Tx驱动来分析log

    Tx (LINQ to Logs and Traces)是微软发布的开源工具.可以用这个工具来使用LINQ分析日志,包括 Event Tracing for Windows (ETW) Event L ...

  5. Linux系统Load average负载详细解释

    我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟.五分钟.以及十五分钟的系统平均负载 例如我的某台服务器: $ uptime 09:50:21 up 200 da ...

  6. python编写Mysql自动备份脚本

    1、先写一个python脚本 vim /opt/mysql_dump.py #!/usr/bin/env python# -*- coding:utf-8 -*-import osimport tim ...

  7. Oracle怎么更改用户名

    http://blog.csdn.net/weiwenhp/article/details/8094575 目录(?)[-] 改用户名的用处 怎么改用户名 还要做的工作 想干坏事明文显示密码   很多 ...

  8. ViewPager的用法和实现过程

    看图先:          页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,如今请先无视吧 首先是 导入jar包   下载地址:android-support-v4.jar 布局文件中加入v ...

  9. MetaData Lock 杨奇龙 ---MYSQL博客专家

    http://blog.itpub.net/22664653/viewspace-1791608/ http://blog.csdn.net/dba_waterbin/article/details/ ...

  10. 字符集详解 ------------------------ UNICODE +UTF8

    http://my.oschina.net/goldenshaw/blog?catalog=3294521 http://my.oschina.net/goldenshaw/blog?catalog= ...