C#网页信息采集方法汇总

本文实例总结了三种常用的C#网页信息采集方法。分享给大家供大家参考。具体实现方法如下:

一、通过HttpWebResponse 来获取

代码如下:

public static string CheckTeamSiteUrl(string url) 

        string response = ""; 
        HttpWebResponse httpResponse = null; 
 
        //assert: user have access to URL  
        try 
        { 
            HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url); 
            httpRequest.Headers.Set("Pragma", "no-cache"); 
 
                // request.Headers.Set("KeepAlive", "true"); 
 
                httpRequest.CookieContainer = new CookieContainer(); 
 
 
 
                httpRequest.Referer = url; 
 
                httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; 
 
               
 
            httpRequest.Credentials = System.Net.CredentialCache.DefaultCredentials; 
            httpResponse = (HttpWebResponse)httpRequest.GetResponse(); 
             
        } 
        catch (Exception ex) 
        { 
            throw new ApplicationException("HTTP 403 Access denied, URL: " + url, ex); 
        } 
 
        //if here, the URL is correct and the user has access  
        try 
        { 
            string strEncod = httpResponse.ContentType; 
            StreamReader stream; 
            if (strEncod.ToLower().IndexOf("utf") != -1) 
            { 
                stream = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.UTF8); 
            } 
            else 
            { 
                stream = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.Default); 
            } 
            
            char[] buff = new char[4000]; 
            stream.ReadBlock(buff,0,4000); 
            response = new string(buff); 
            stream.Close(); 
            httpResponse.Close(); 
        } 
        catch (Exception ex) 
        { 
            throw new ApplicationException("HTTP 404 Page not found, URL: " + url, ex); 
        } 
        return response; 
}

二、通过 WebResponse 来获取

代码如下:

public static string getPage(String url) 
{
        WebResponse result = null; 
        string resultstring = ""; 
        try 
        { 
            WebRequest req = WebRequest.Create(url); 
            req.Timeout = 30000; 
            result = req.GetResponse(); 
            Stream ReceiveStream = result.GetResponseStream(); 
 
            //read the stream into a string 
            //StreamReader sr = new StreamReader(ReceiveStream, System.Text.Encoding.UTF8); 
            string strEncod = result.ContentType; 
            StreamReader sr; 
            if (strEncod.ToLower().IndexOf("utf") != -1) 
            { 
                sr = new StreamReader(ReceiveStream, System.Text.Encoding.UTF8); 
            } 
            else 
            { 
                sr = new StreamReader(ReceiveStream, System.Text.Encoding.Default); 
            } 
            resultstring = sr.ReadToEnd(); 
            js.alert(resultstring); 
            //Console.WriteLine(resultstring); 
        } 
        catch 
        { 
            throw new Exception(); 
        } 
        finally 
        { 
            if (result != null) 
            { 
                result.Close(); 
            } 
        } 
        return resultstring; 
}

三、通过WebClient来获取

代码如下:

public string get(int length) 

        try 
        { 
            getEncodeing(); 
            WebClient wb = new WebClient(); 
            Stream response = wb.OpenRead(url); 
            StreamReader reader = new StreamReader(response, this.encoding, true, 256000); 
            char[] a = new char[length]; 
            int i  = reader.Read(a,0,length); 
            reader.Close(); 
            return new string(a); 
        } 
        catch (Exception e) 
        { 
            return e.Message; 
            //return null; 
        } 

private void getEncodeing() 
{
        switch (this.encode) 
        { 
            case "UTF-8": encoding = Encoding.UTF8; break; 
            case "GB2312": encoding = Encoding.GetEncoding("GB2312"); break; 
            case "ASCII": encoding = Encoding.ASCII; break; 
            default: encoding = Encoding.GetEncoding(encode); break; 
        } 
}

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

(0)

相关推荐

  • Winform实现将网页生成图片的方法

    通常浏览器都有将网页生成图片的功能,本文实例讲述了Winform实现将网页生成图片的方法.分享给大家供大家参考.具体方法如下: 工具截图如下: 生成后的图片如下: 手动填写网站地址,可选择图片类型和保持图片地址,来生成页面的图片,当图片路径未选择时则保存桌面: 具体代码如下: 将html生成图片的类 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usi

  • 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#实现下载网页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#获取网页HTML源码实例

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

  • 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#获取网页HTML源码的例子

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

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

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

  • C#使用默认浏览器打开网页的方法

    本文实例讲述了C#使用默认浏览器打开网页的方法.分享给大家供大家参考.具体实现方法如下: public static bool OpenBrowser(String url) { RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\"); String s = key.GetValue("").ToString(); String browserpath = null

  • 使用C# Winform应用程序获取网页源文件的解决方法

    在C# Winform 应用程序中,获取某网页的源文件,可以用以下方法: 首先引入名称空间 using System.IO; using System.Net; WebClient MyWebClient = new WebClient(); MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据 Byte[] pageData = MyWebClient.Do

  • C#实现Winform中打开网页页面的方法

    本文实例讲述了C#实现Winform中打开网页页面的方法.分享给大家供大家参考.具体实现方法如下: 1.首先比较简单的我们知道有类似的方法如下 复制代码 代码如下: System.Diagnostics.Process.Start("http://www.baidu.com"); 2.比较灵活一点,可以定义窗口大小,我们要实现网页中脚本打开页面的方法,即window.open 那么,我们必然会想,如何调用页面的脚本呢?其实可以利用WebBrowser来实现 //连接 string ur

随机推荐