nodejs爬虫superagent爬取gb2312编码网页中文乱码
如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!
nodejs爬虫superagent爬取gb2312编码网页中文乱码
今天爬取某个古老的网站的数据,发现中文乱码。
这个网站从外观上看也够古老的,是偏政企类网页,这种项目一般也都是外包出去的,技术更新速度也是可想而知,里面竟然还是写死的gb2312,还有三层table嵌套。
在网上搜了下,有的不少文章说的可能方法是过时,反正我实测没效果。
在npm上搜了下superagent,发现官方就提到了一个charset插件superagent-charset,superagent-charset的官方github上就给出来示例代码。
const should = require('should')
const request = require('superagent')
require('superagent-charset')(request) // install charset
describe('Basic Test', function() {
it('it works', function(done) {
request.get('http://www.sohu.com/')
.charset('gbk')
.end((err, res) => {
res.text.should.match(/搜狐/)
done(err)
})
})
})
果然,搞定了。
const superagent= require('superagent');
require('superagent-charset')(superagent)
const cheerio = require('cheerio');
function getResponse(url, charset = 'utf8') {
return new Promise((resolve, reject) => {
superagent.get(url)
.buffer(true).charset(charset)
.end((err, res) => {
if (err) {
reject(err);
} else {
resolve(res);
}
});
});
}
- 分类:
- 吐槽
更新时间:
相关文章
ASCII码、GB2312、Big5、UTF-8、unicode编码转换知识
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节( 阅读更多…
用ASP实现UTF8、GB2312、二进制、十进制代码、十六进制编码转换
UTF转GB---将UTF8编码文字转换为GB编码文字 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr) '如果UTF8编码文字以%开头则进行 阅读更多…