C#几种获取网页源文件代码的实例

方法一:


代码如下:

using System.Text;
using System.Net;
private string getHtml(string url)
{
WebClient myWebClient = new WebClient();
byte[] myDataBuffer = myWebClient.DownloadData (url);
return Encoding.Default.GetString(myDataBuffer);
}

方法二:


代码如下:

public string getHttp(string HttpUrl,string RefererUrl)
{
string html = "";
try
{
MSXML2.XMLHTTP Http = new MSXML2.XMLHTTPClass();
xmlhttp.open("GET", Url, false, null, null);
Http.open("GET",HttpUrl,false,null,null);
Http.setRequestHeader("Referer",RefererUrl);
//Http.setRequestHeader("Referer",RefererUrl);
Http.setRequestHeader("Content-Type", "text/html;charset=gb2312");
Http.send("");
html = Encoding.Default.GetString((byte[])Http.responseBody);
Http = null;
}
catch
{
}
return html;
}
public bool getweb(string strURL,out string buf)
  {
   buf="";
   try
   {
    //Uri url=new Uri(strURL,false);
    HttpWebRequest request;
    request = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method="POST"; //Post请求方式
    request.ContentType="text/html;charset=gb2312"; //内容类型
    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码
    byte[] payload;
    payload = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
    request.ContentLength = payload.Length; //设置请求的ContentLength
    Stream writer = request.GetRequestStream(); //获得请求流
    writer.Write(payload,0,payload.Length); //将请求参数写入流
    writer.Close(); //关闭请求流
    HttpWebResponse response;
    response = (HttpWebResponse)request.GetResponse(); //获得响应流
    Stream s;
    s = response.GetResponseStream();
    StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
    string HTML = "";
    string sLine ="";
    int i = 0;
    while (sLine!=null)
    {
     i++;
     sLine = objReader.ReadLine();
     if (sLine!=null)
      HTML += sLine;
    }
    //HTML = HTML.Replace("<","<");
    //HTML = HTML.Replace(">",">");
    buf=HTML;
    return true;
   }
   catch (Exception x)
   {  
    buf=x.Message.ToString();
    return false;   
   }
  }

带Cookie:


代码如下:

CookieContainer cc = new CookieContainer();
public bool getweb(string strURL,out string buf)
  {
   buf="";
   try
   {
    HttpWebRequest request;
    request = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method="POST"; //Post请求方式
    request.ContentType="text/html;charset=gb2312"; //内容类型
    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码
    byte[] payload;
    payload = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
    request.ContentLength = payload.Length; //设置请求的ContentLength
    Stream writer = request.GetRequestStream(); //获得请求流
    writer.Write(payload,0,payload.Length); //将请求参数写入流
    writer.Close(); //关闭请求流
    HttpWebResponse response;
    response = (HttpWebResponse)request.GetResponse(); //获得响应流
    Stream s;
    s = response.GetResponseStream();
    StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
    string HTML = "";
    string sLine ="";
    int i = 0;
    while (sLine!=null)
    {
     i++;
     sLine = objReader.ReadLine();
     if (sLine!=null)
      HTML += sLine;
    }
    buf=HTML;
    return true;
   }
   catch (Exception x)
   {  
    buf=x.Message.ToString();
    return false;   
   }
  }
  public bool getweb(string strURL,out string buf,string postData)
  {
   buf="";
   try
   {  
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] data = encoding.GetBytes(postData);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = data.Length;
    Stream newStream = request.GetRequestStream();
    newStream.Write(data, 0, data.Length);
    newStream.Close();
    request.CookieContainer = cc;
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    cc.Add(response.Cookies);
    Stream stream = response.GetResponseStream();
    string sHtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
    buf=sHtml;
    return true;
   }
   catch (Exception x)
   {  
    buf=x.Message.ToString();
    return false;   
   }
  }
private   string   getWebresourceFile1(string   url)
    {
WebClient   myWebClient   =   new   WebClient();   
byte[]   myDataBuffer   =   myWebClient.DownloadData(url);
string   SourceCode   =   Encoding.Default.GetString(myDataBuffer);
saveSourceCode(SourceCode);
                  return   SourceCode;
      }

方法2


代码如下:

private   string   getWebresourceFile2(string   url)
    {
HttpWebRequest   request=(HttpWebRequest)WebRequest.Create(url); 
HttpWebResponse   response=(HttpWebResponse)request.GetResponse(); 
                  request.Method   =   "GET ";       
Stream   receiveStream=response.GetResponseStream();
StreamReader   readStream=new   StreamReader(receiveStream,Encoding.Default);
string   SourceCode=readStream.ReadToEnd();   
saveSourceCode(SourceCode);
response.Close();     
readStream.Close();
return   SourceCode;
      }

方法3


代码如下:

private   string   getWebresourceFile3(string   url)
      {
WebClient   wc   =   new   WebClient();
wc.Credentials   =   CredentialCache.DefaultCredentials;
Byte[]   pageData   =   wc.DownloadData(url);
string   SourceCode   =   Encoding.Default.GetString(pageData);
saveSourceCode(SourceCode);
wc.Dispose(); 
return   SourceCode;
      }

方法4


代码如下:

private   string   getWebresourceFile4(string   url)
    {
WebClient   wc   =   new   WebClient();
wc.Credentials   =   CredentialCache.DefaultCredentials;
Stream   resStream   =   wc.OpenRead(url);
StreamReader   sr   =   new   StreamReader(resStream,System.Text.Encoding.Default);
string   SourceCode   =   sr.ReadToEnd();
saveSourceCode(SourceCode);
resStream.Close();
wc.Dispose(); 
return   SourceCode;
      }

方法5


代码如下:

private   string   getWebresourceFile5(string   url)
      {
WebRequest   request   =   WebRequest.Create(url);
WebResponse   response   =   request.GetResponse();
Stream   resStream   =   response.GetResponseStream(); 
StreamReader   sr   =   new   StreamReader(resStream,   System.Text.Encoding.Default);
string   SourceCode   =     sr.ReadToEnd();
saveSourceCode(SourceCode);
resStream.Close(); 
sr.Close();
return   SourceCode;
      }

(0)

相关推荐

  • C# 抓取网页内容的方法

    1.抓取一般内容 需要三个类:WebRequest.WebResponse.StreamReader 所需命名空间:System.Net.System.IO 核心代码: view plaincopy to clipboardprint? 复制代码 代码如下: WebRequest request = WebRequest.Create("http://www.jb51.net/");   WebResponse response = request.GetResponse();   S

  • c#根据网址抓取网页截屏生成图片的示例

    复制代码 代码如下: using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Threading;using System.Windows.Forms; public class WebsiteToImage{private Bitmap m_Bitmap;private string m_Url;private string m_FileName = string.Empty; public

  • C#获取网页源代码的方法

    本文实例讲述了C#获取网页源代码的方法.分享给大家供大家参考.具体如下: public string GetPageHTML(string url) { try { HttpWebRequest wr = WebRequest.Create(url) as HttpWebRequest; wr.Method = "get"; wr.Accept = "*/*"; wr.Headers.Add("Accept-Language: zh-cn");

  • C#实现抓取和分析网页类实例

    本文实例讲述了C#实现抓取和分析网页类.分享给大家供大家参考.具体分析如下: 这里介绍了抓取和分析网页的类. 其主要功能有: 1.提取网页的纯文本,去所有html标签和javascript代码 2.提取网页的链接,包括href和frame及iframe 3.提取网页的title等(其它的标签可依此类推,正则是一样的) 4.可以实现简单的表单提交及cookie保存 /* * Author:Sunjoy at CCNU * 如果您改进了这个类请发一份代码给我(ccnusjy 在gmail.com)

  • 使用C#获取网页HTML源码的例子

    最近在做一个项目,其中一个功能是根据一个URL地址,获取到网页的源代码.在ASP.NET(C#)中,获取网页源代码貌似有很多种方法,我随便搞了一个简单的WebClient,非常简单容易.但后面一个非常恼火的问题出来了,那就是中文的乱码. 通过仔细研究,中文的网页不外乎GB2312和UTF-8这两种编码.于是有了下面这段代码: 复制代码 代码如下: /// <summary>        /// 根据网址的URL,获取源代码HTML        /// </summary>   

  • C#实现下载网页HTML源码的方法

    本文实例讲述了C#实现下载网页HTML源码的方法.分享给大家供大家参考之用.具体方法如下: public static class DownLoad_HTML { private static int FailCount = 0; //记录下载失败的次数 public static string GetHtml(string url) //传入要下载的网址 { string str = string.Empty; try { System.Net.WebRequest request = Sys

  • C#实现将网页保存成图片的网页拍照功能

    本文实例主要实现了网页照相机程序的功能.C#实现将网页保存成图片格式,简单实现网页拍照,主要是基于ActiveX 组件的网页快照类,AcitveX 必须实现 IViewObject 接口.因此读者完全可扩展此类将其用于你的C#软件项目中.在此特别感谢作者:随飞提供的代码. 主要功能代码如下: using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices

  • C#获取网页HTML源码实例

    本文实例讲述了C#获取网页HTML源码的方法,分享给大家供大家参考.具体方法如下: 关键代码如下: 复制代码 代码如下: /// <summary> /// 获取网页HTML源码 /// </summary> /// <param name="url">链接 eg:http://www.baidu.com/ </param> /// <param name="charset">编码 eg:Encoding.

  • c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法源代码

    复制代码 代码如下: using System; using System.IO; using System.Data; using System.Text; using System.Diagnostics; using System.Security; using System.Security.Cryptography; /**//* * .Net框架由于拥有CLR提供的丰富库支持,只需很少的代码即可实现先前使用C等旧式语言很难实现的加密算法.本类实现一些常用机密算法,供参考.其中MD5算

  • C#中使用Socket获取网页源代码的代码

    WebToolkit类: 复制代码 代码如下: using System; using System.Net.Sockets; using System.Text; namespace ConsoleApplication1 { class WebToolkit { /// <summary> /// Url结构 /// </summary> struct UrlInfo { public string Host; public int Port; public string Fi

随机推荐