用nodeJS配合
爬网页数据。
原始数据是gb2312编码,在网上找了包superagent-charset将gb2312转成了utf8格式,结果保存在了txt文件里,后续想内容写到moongo里。
简化代码如下:
var superagent = require('superagent');
var charset = require('superagent-charset');
var cheerio = require('cheerio');
var fs = require('fs');
var request = require("request");
var pageUrl = [];
charset(superagent);
for (var i = 1; i < 100; i++) {
pageUrl.push(baseUrl + i);
}
function start() {
pageUrl.forEach((url, index) => {
superagent.get(url).charset('gb2312').end((err, res) => {
console.log(url);
if (err) {
console.log('error');
} else if (res) {
var $ = cheerio.load(res.text);
var body = $('body');
fs.appendFile('./result.txt', body);
}
});
});
}
start();
发现汉字以utf-8编码的形式保存在result.txt文件里。前端一只,还不懂Node,有2个问题求助。
1:有办法将utf-8编码转成汉字保存在result.txt里吗?
2:清洗后的数据打算放到mongo里,是将中文以utf-8编码形式保存到数据好呢,还是转成中文后保存到数据库中好呢?
————————————————————————分割线————————————————————
问题已经解决。关键步骤:
1:先将gb2312转成utf-8,用superagent-charset
解决。
2:查看 cheerio,发现参数: {decodeEntities: false}
,可以原文保存。
你说的是unicode字符码还是utf-8字符码。
如果是unicode字符码,就是类似于:
这种样子的就直接存吧。
但是如果是
这样的字符码,那你还是转成汉字存储吧。
具体的编码问题可以看看这个链接:
https://www.zhihu.com/questio...