87,910
社区成员
发帖
与我相关
我的任务
分享
function unzip(data) {
return new Promise(function(resolve, reject) {
require('zlib').unzip(data, function(err, res){
if (err) {
reject(err);
} else {
resolve(res);
}
});
});
}
function httpGet(url) {
return new Promise(function(resolve, reject) {
require('http').get(url, function(res) {
let ret:any = [];
res.on('data', function(d) {
ret.push(d);
});
res.on('end', function() {
resolve({res, data:Buffer.concat(ret)});
});
}).on('error', reject);
});
}
function loadPage(url) {
return httpGet(url).then(function({res, data}) {
if (res.headers['content-encoding'] == 'gzip') {
return unzip(data).then(function(data) {
return {res, data};
});
} else {
return {res, data};
}
}).then(function({res, data}) {
let encoding = 'utf-8';
if (/charset=([^;\s]+)/i.test(res.headers['content-type'])) {
encoding = RegExp.$1;
}
return require('iconv-lite').decode(data, encoding);
});
}
loadPage('http://bet.hkjc.com/marksix/default.aspx').then(function(d) {
console.log(d);
})