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#程序设计有所帮助。

相关文章

  • 完美解决api、WebService跨域的问题

    完美解决api、WebService跨域的问题

    下面小编就为大家分享一篇快速解决api、WebService跨域的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 详解在ASP.NET Core中如何编写合格的中间件

    详解在ASP.NET Core中如何编写合格的中间件

    这篇文章主要介绍了详解在ASP.NET Core中如何编写合格的中间件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 谈谈.net对象生命周期(垃圾回收)

    谈谈.net对象生命周期(垃圾回收)

    这篇文章主要介绍了谈谈.net对象生命周期(垃圾回收),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • asp.net IList查询数据后格式化数据再绑定控件

    asp.net IList查询数据后格式化数据再绑定控件

    这篇文章送给.net初学者或者遇到类似问题的朋友,就是IList如何格式化数据再绑定,我看到网上没有多少朋友讲到这方面的最基本的问题,现在我简单说说吧,代码我就截取其中一些讲,如果不明白的朋友可以留言或者联系我。
    2009-11-11
  • 用ASP.NET做的个性化的邮件发送系统

    用ASP.NET做的个性化的邮件发送系统

    如果要你用ASP来做一个邮件发送系统,你一定认为这是一个比较复杂的工作。其实也的确是这样。但当他的后继产品ASP.NET被推出以后,他的强大功能就使的这一切就变的相对简单了。真的这样神奇么?我们就通过ASP.NET做一个邮件发送系统,看看到底有什么奥秘,是不是真的简单。
    2008-02-02
  • 基于.NET的FluentValidation数据验证实现

    基于.NET的FluentValidation数据验证实现

    这篇文章主要介绍了基于.NET的FluentValidation数据验证实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 剖析Asp.Net Web API路由系统---WebHost部署方式

    剖析Asp.Net Web API路由系统---WebHost部署方式

    这篇文章主要介绍了剖析Asp.Net Web API路由系统---WebHost部署方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • asp.net简化接收参数值的函数

    asp.net简化接收参数值的函数

    获取querystring 参数名
    2008-05-05
  • .NET中的HashSet及原理解析

    .NET中的HashSet及原理解析

    HashSet定义在System.Collections.Generic中,是一个不重复、无序的泛型集合,本文学习下HashSet的工作原理,对.NET中的HashSet相关知识感兴趣的朋友一起看看吧
    2022-03-03
  • .net微信服务号发送红包

    .net微信服务号发送红包

    这篇文章主要为大家详细介绍了.net微信服务号发送红包的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论