博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js 解析gzip网页(https)
阅读量:5297 次
发布时间:2019-06-14

本文共 1652 字,大约阅读时间需要 5 分钟。

gzip网页指网页头字段Content-Encoding是gzip(GNU zip)内容编码方式。内容编码是指不丢失实体信息的前提下所进行的压缩。

Node.js 代码如下:

//====================================================// 访问www.meitulu.com得到pagecode// 2017年11月6日//====================================================// 内置https模块,提供了https服务器和客户端功能var https=require("https");var zlib = require('zlib'); // cheerio模块,提供了类似jQuery的功能var cheerio = require("cheerio");// 内置文件处理模块var fs=require('fs');// 请求参数JSONvar options;// request请求var req;//--------------------------------------// 程序入口 Accept-Encoding:gzip, deflate, br//--------------------------------------function start(){    // 初始化options      options={        hostname:'www.meitulu.com',            port:443,            path:'/item/40.html',// 子路径          method:'GET',           agent:false,            gzip: true,    };        req=https.request(options,function(resp){        var html = [];        resp.on("data", function(data) {            html.push(data);        })        resp.on("end", function() {            var buffer = Buffer.concat(html);            zlib.gunzip(buffer, function(err, decoded) {                console.log(decoded.toString());// gzip解压后的html文本                            })        }).on("error", function() {            console.log("获取失败")        })    });    // 超时处理    req.setTimeout(5000,function(){        req.abort();    });    // 出错处理    req.on('error',function(err){        if(err.code=="ECONNRESET"){            console.log('socket端口连接超时。');        }else{            console.log('请求发生错误,err.code:'+err.code);        }    });    // 请求结束    req.end();}// 调用start函数,程序开始start();

参考文档:

转载于:https://www.cnblogs.com/xiandedanteng/p/7791465.html

你可能感兴趣的文章
程序集的混淆及签名
查看>>
java笔记
查看>>
MATLAB中subplot的用法
查看>>
MapReduce的初次尝试
查看>>
thinkphp框架 中 ajax 的应用
查看>>
JAVA排序(一) Comparable接口
查看>>
iTerm2 + Oh My Zsh
查看>>
判断9X9数组是否是数独的java代码
查看>>
ExtJS学习之路第一步:对比jQuery,认识ExtJS
查看>>
Leetcode 268 Missing Number
查看>>
00-自测1. 打印沙漏
查看>>
UNITY在VS中调试
查看>>
福建省第八届 Triangles
查看>>
P1182 数列分段`Section II` P1316 丢瓶盖 二分答案
查看>>
更新下载库update绝对详解
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
laravel
查看>>
installing the matplotlib via pip in the enviroment dos
查看>>
bzoj3312: [Usaco2013 Nov]No Change
查看>>