C#使用Gzip解压缩完整读取网页内容

简介: using System; using System.Threading; using System.Text; using System.Text.RegularExpressions; using System.
using System;
using System.Threading;
using System.Text;
using System.Text.RegularExpressions;
using System.IO.Compression;
using System.IO;
using System.Web;
using System.Net;
 
class Test
{
    static void Main()
    {
        string url = "http://www.cnblogs.com/waw/";
        getHtml1(url);
        getHtml2(url);
        Console.ReadKey();
    }
 
    private static void getHtml1(string url)
    {
        StringBuilder s = new StringBuilder(102400);
        WebClient wr = new WebClient();
        wr.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
        byte[] buffer = wr.DownloadData(url);
        GZipStream g = new GZipStream((Stream)(new MemoryStream(buffer)), CompressionMode.Decompress);
        byte[] d = new byte[20480];
        int l = g.Read(d, 0, 20480);
        while (l > 0)
        {
            s.Append(Encoding.Default.GetString(d, 0, l));
            l = g.Read(d, 0, 20480);
        }
        Console.Write(s.ToString() + "/n/n/n" + s.Length);
 
    }
 
    private static void getHtml2(string url)
    {
        StringBuilder s = new StringBuilder(102400);
        HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
        wr.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
        HttpWebResponse response = (HttpWebResponse)wr.GetResponse();
        head(response);
        GZipStream g = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
        byte[] d = new byte[20480];
        int l = g.Read(d, 0, 20480);
        while (l > 0)
        {
            s.Append(Encoding.Default.GetString(d, 0, l));
            l = g.Read(d, 0, 20480);
        }
        Console.Write(s.ToString() + "/n/n/n" + s.Length);
    }
 
    private static void head(HttpWebResponse r)
    {
        string[] keys = r.Headers.AllKeys;
        for (int i = 0; i < keys.Length; ++i)
        {
            Console.WriteLine(keys[i] + "   " + r.Headers[keys[i]]);
        }
    }
}

 

目录
相关文章
|
3天前
|
网络安全 C#
C# HttpWebRequest 获取 HTTPS 网页内容
C# HttpWebRequest 获取 HTTPS 网页内容
10 0
|
2月前
|
数据采集 API C#
网页解析高手:C#和HtmlAgilityPack教你下载视频
使用C#和HtmlAgilityPack解析小红书网页,下载其视频内容。文章涵盖了解析网页、获取视频链接、C#实现、HtmlAgilityPack简化解析、代理IP确保下载稳定及多线程提高下载效率。提供的代码示例展示了如何设置代理和多线程下载视频。实验结果显示,该方法能有效、高效地下载小红书视频。
网页解析高手:C#和HtmlAgilityPack教你下载视频
|
2月前
|
API C# 数据安全/隐私保护
C# 实现网页内容保存为图片并生成压缩包
C# 实现网页内容保存为图片并生成压缩包
|
3月前
|
JSON C# 数据格式
C# 处理gzip格式的json
C# 处理gzip格式的json
22 0
|
11月前
|
数据采集 C#
使用c#和selenium获取网页
selenium 和 c# 的应用之一是创建一个网络爬虫,它可以从网页中抓取数据进行分析。网络爬虫是一种访问网页并从中提取信息的程序。 Selenium 是一个框架,它允许我们自动执行浏览器操作,例如单击、键入或导航。 C# 是一种编程语言,可用于编写网络爬虫的逻辑和功能。
109 0
|
12月前
|
开发框架 移动开发 前端开发
如何使用C#和HTMLAgilityPack抓取网页
HTMLAgilityPack是一款备受欢迎的用于解析和操作HTML文档的库。在使用之前,开发者需要考虑一些优缺点。下面是一些值得注意的优点: 1. 强大的错误容忍性 2. 灵活的API 3. 广泛的应用场景 然而,也有一些缺点需要考虑: 1. 性能问题 2. 对最新HTML特性的支持限制 3. 可能存在依赖和冲突
|
Web App开发 监控 前端开发
C# WPF 嵌入网页版WebGL油田三维可视化监控
C# WPF 嵌入网页版WebGL油田三维可视化监控
C# WPF 嵌入网页版WebGL油田三维可视化监控