正在学习用nodejs抓取新闻,但是在抓取正文这里卡住了。
输出时,输出了一堆乱码+各种标签……
已解决乱码问题。求解如何去掉里面的无用标签?
检查发现编码
<meta charset="gb2312" />
求问怎么去掉里面的各种标签并且转换成UTF-8呢?
使用iconv-lite库来转码
request({
url: 'http://news.163.com/15/0405/09/AME6CKER0001124J.html',
// 重点,设置 request 抓取网页时不要对接收到的数据做任何转换
encoding: null
}, function (err, res, body) {
if (err) throw err;// 转换 gbk 编码的网页内容
body = iconv.decode(body, 'gbk');// 根据网页内容创建DOM操作对象
var $ = cheerio.load(body);
nodejs库有:request、cheerio
js代码:
// 读取新闻页面
request('http://news.163.com/15/0405/09/AME6CKER0001124J.html', function (err, res) {
if (err) return callback(err);
// 根据网页内容创建DOM操作对象
var $ = cheerio.load(res.body.toString());
// 获取正文内容
var content = $('.end-text').html().trim();
// 输出结果
console.log({content: content});
新闻正文html:http://news.163.com/15/0405/09/AME6CKER0001124J.html
希望各位朋友能帮我解解惑,谢谢!