代码如下: const schedule = require(“node-schedule”); const charset = require(‘superagent-charset’); const superagent = charset(require(‘superagent’)); const cheerio = require(“cheerio”); const iconv = require(“iconv-lite”); const async = require(“async”);
function details(url) { let content = []; for(let i=0;i<url.length;i++){ superagent.get(url[i]).end(function (err, sres) { if (err) { console.log(“打印错误日志:” + err); return next(err); } let $ = cheerio.load(sres.text); $(’#NIE-art .artText’).each(function (idx, element) { let $element = $(element); let article=$element.html(); // let article = new Buffer($element.html(), ‘binary’); // let text = new iconv.decode(article, “utf-8”, {defaultEncoding : “WINDOWS-1251”}); let text=iconv.decode(article,‘utf-8’); console.log(text); }); }); }
}
如图,改怎么转码啊!
用cheerio爬取,没遇到这种情况,楼下大神解答
先打印下 sres.text啊 看原数据是否不对,楼下大神解答
帮顶
来自酷炫的 CNodeMD
cheerio.load(res.text,{decodeEntities: false});
使用cnode[antd-moblie]版
楼上+1,cheerio解析的问题。
前两天刚遇到这个问题 解决方案 中文乱码?不,是 HTML 实体编码!
我有时候爬出来的东西是js渲染代码
来自酷炫的 CNodeMD
感谢各位大神,问题已经解决!
我之前爬起点网的文章就是乱码,后来自己重新设置了下编码
转化为utf8就行了吧