asp.net 抓取网页数据(利用怎么对网页源码进行抓取?新手对此不是详细讲解)

优采云 发布时间: 2021-11-30 13:01

  asp.net 抓取网页数据(利用怎么对网页源码进行抓取?新手对此不是详细讲解)

  如何使用抓取网页的源代码?很多新手对此都不是很清楚。为了帮助您解决这个问题,下面小编将为您详细解说。有这方面需求的可以过来学习。我希望你能有所收获。

  更推荐方法一

  ///   

 

    /// 用HttpWebRequest取得网页源码  

    /// 对于带BOM的网页很有效,不管是什么编码都能正确识别  

    ///   

    /// 网页地址"   

    /// 返回网页源文件  

    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)"; // 模拟使用IE在浏览 http://www.52mvc.com

      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;

    }

  方法二

  using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.IO;

using System.Text;

using System.Net;

namespace MySql

{

  public class GetHttpData

  {

    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;

    }

 

  }

}

  方法三

<p>public static string getHtml(string url, params string [] charSets)//url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码

  {

    try

    {

      string charSet = null;

      if (charSets.Length == 1) {

        charSet = charSets[0];

      }

      WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient

      // 需要注意的:

      //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等

      //这是就要具体问题具体分析比如在头部加入cookie

      // webclient.Headers.Add("Cookie", cookie);

      //这样可能需要一些重载方法。根据需要写就可以了

 

 

      //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。

      myWebClient.Credentials = CredentialCache.DefaultCredentials;

      //如果服务器要验证用户名,密码

      //NetworkCredential mycred = new NetworkCredential(struser, strpassword);

      //myWebClient.Credentials = mycred;

      //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)

      byte[] myDataBuffer = myWebClient.DownloadData(url);

      string strWebData = Encoding.Default.GetString(myDataBuffer);

 

 

      //获取网页字符编码描述信息

      Match charSetMatch = Regex.Match(strWebData, "

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线