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

本文共 1595 字,大约阅读时间需要 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();

参考文档:

转载地址:http://yzano.baihongyu.com/

你可能感兴趣的文章
Vue+webpack+Element 兼容问题总结
查看>>
《软技能》读书笔记(下)
查看>>
textarea文域高度自适应
查看>>
go语言renderer包代码分析
查看>>
【Scala谜题】成员声明的位置
查看>>
git最最最最...常用命令
查看>>
复杂recyclerView封装库
查看>>
见微知著 —— Redis 字符串内部结构源码分析
查看>>
Command './js-ant' failed to execute
查看>>
阿里云NFS NAS数据保护实战
查看>>
Spring cloud配置客户端
查看>>
产品研发项目管理软件哪个好?
查看>>
【阿里云北京峰会】一图看懂机器学习PAI如何帮助企业应用智能化升级
查看>>
Android API中文文档(111) —— MailTo
查看>>
Linux 中如何卸载已安装的软件
查看>>
thinkphp 3.2 增加每页显示条数
查看>>
oracle日常简单数据备份与还原
查看>>
我的友情链接
查看>>
黑马程序员__反射总结
查看>>
Scala学习笔记(5)-类和方法
查看>>