ASP.NET抓取网页内容的实现方法

 更新时间:2015年02月04日 10:01:29   作者:whazhl   我要评论

这篇文章主要介绍了ASP.NET抓取网页内容的实现方法,涉及使用HttpWebRequest及WebResponse抓取网页内容的技巧,需要的朋友可以参考下

本文实例讲述了ASP.NET抓取网页内容的实现方法。分享给大家供大家参考。具体实现方法如下:

一、ASP.NET 使用HttpWebRequest抓取网页内容

复制代码 代码如下:
/// <summary>方法一:比较推荐 
/// 用HttpWebRequest取得网页源码 
/// 对于带BOM的网页很有效,不管是什么编码都能正确识别 
/// </summary> 
/// <param name="url">网页地址" </param> 
/// <returns>返回网页源文件</returns> 
public static string GetHtmlSource2(string url) 

    //处理内容 
    string html = ""; 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
    request.Accept = "*/*"; //接受任意文件 
    request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; //  
    request.AllowAutoRedirect = true;//是否允许302 
    //request.CookieContainer = new CookieContainer();//cookie容器, 
    request.Referer = url; //当前页面的引用 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    Stream stream = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(stream, Encoding.Default); 
    html = reader.ReadToEnd(); 
    stream.Close(); 
    return html; 
}

二、ASP.NET 使用 WebResponse 抓取网页内容

复制代码 代码如下:
public static string GetHttpData2(string Url) 

    string sException = null; 
    string sRslt = null; 
    WebResponse oWebRps = null; 
    WebRequest oWebRqst = WebRequest.Create(Url); 
    oWebRqst.Timeout = 50000; 
    try 
    { 
        oWebRps = oWebRqst.GetResponse(); 
    } 
    catch (WebException e) 
    { 
        sException = e.Message.ToString(); 
    } 
    catch (Exception e) 
    { 
        sException = e.ToString(); 
    } 
    finally 
    { 
        if (oWebRps != null) 
        { 
            StreamReader oStreamRd = new StreamReader(oWebRps.GetResponseStream(), Encoding.GetEncoding("utf-8")); 
            sRslt = oStreamRd.ReadToEnd(); 
            oStreamRd.Close(); 
            oWebRps.Close(); 
        } 
    } 
    return sRslt; 
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • ASP.NET中如何实现回调

    ASP.NET中如何实现回调

    这篇文章主要为大家详细介绍了ASP.NET中如何实现回调操作,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • WinForm中DataGridView折叠控件【超好看】

    WinForm中DataGridView折叠控件【超好看】

    刚到一家新公司,领导下发任务要用cs系统做一个表格折叠显示,这真是把我难倒了,自己工作6年一直以来都是做BS的系统,于是上网搜了相关视频,资料,开始学习起来,下面小编把WinForm中DataGridView折叠控件的知识分享给大家,供大家参考
    2016-05-05
  • C# Quoted-Printable编码、解码

    C# Quoted-Printable编码、解码

    Class for encoding and decoding a string to QuotedPrintable
    2008-12-12
  • 利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表

    利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据

    jQuery dataTables 插件是一个优秀的表格插件,应用非常广泛,本文给大家介绍利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-07-07
  • Asp.net发送邮件的两种方法小结

    Asp.net发送邮件的两种方法小结

    这几天看了一下Asp.net发送邮件方面的东西,记得之前的IIS6上有SMTP服务器,可以直接利用这个进行邮件发送,现在的开发环境是Windows 7,找了半天没有找到,到网络上查了才知道原来windows 7和Vista都将SMTP服务器去掉了,现在将两种方法总结一下。
    2010-06-06
  • 详解.NET Core 使用HttpClient SSL请求出错的解决办法

    详解.NET Core 使用HttpClient SSL请求出错的解决办法

    这篇文章主要介绍了.NET Core 使用HttpClient SSL请求出错的解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • ASP.NET Core 2.0中Razor页面禁用防伪令牌验证

    ASP.NET Core 2.0中Razor页面禁用防伪令牌验证

    在这篇短文中,我将向您介绍如何ASP.NET Core2.0 Razor页面中禁用防伪令牌验证,对此有兴趣的朋友参考学习下吧。
    2018-01-01
  • 详解ASP.NET MVC 利用Razor引擎生成静态页

    详解ASP.NET MVC 利用Razor引擎生成静态页

    本篇文章主要介绍了ASP.NET MVC 利用Razor引擎生成静态页,详细的介绍了原理和步骤,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • Asp.net后台把脚本样式输出到head标签中节省代码冗余

    Asp.net后台把脚本样式输出到head标签中节省代码冗余

    最近在学习开发服务器控件,其它就少不了为控件注册js和css之类的资源文件,或者直接注册纯脚本样式。其中就遇到如下问题     1、 注册的资源文件或纯脚本样式在生成的页面中都不在head标签中(当然这个不影响页面功能)     2、 一个页面使用多个一样的控件时,会出现重复输入(出现多余代码)
    2013-02-02
  • ASP.NET MVC API 接口验证的示例代码

    ASP.NET MVC API 接口验证的示例代码

    本篇文章主要介绍了ASP.NET MVC API 接口验证的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论