码迷,mamicode.com
首页 > Web开发 > 详细

爬虫中gbk网页内容的处理

时间:2015-11-30 02:11:00      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

  有些网站仍在使用GBK编码,而JS内部字符编码使用Unicode来表示,node编写的爬虫需要做的转换是GBK->Unicode->utf-8,关于三者关系参考http://www.cnblogs.com/cy163/archive/2007/05/31/766886.html

var request = require(‘request‘);
var cheerio = require(‘cheerio‘);
request(‘http://www.taobao.com/‘,function(err,res){
    if(err) throw err;
   var $ = cheerio.load(res.body.toString());
   console.log($(‘head title‘).text());  
});

  上例输出空白,因为某宝网就是使用GBK编码,而node把GBK的页面内容当作Unicode编码,来UTF-8来处理。可以使用iconv-lite模块来处理。

var request = require(‘request‘);
var cheerio = require(‘cheerio‘);
var iconv = require(‘iconv‘);
request({
    url:‘http://www.taobao.com‘,
    encoding:null//设置抓取页面时不要对数据做任何转换
    },function(err,res,body){
    if(err) throw err;
    body = iconv.decode(body.‘gbk‘);//转换gbk编码的页面内容
    var $ = cheerio.load(body);
   console.log($(‘head title‘).text());  
});

  也可以使用gbk模块来处理此问题

var cheerio = require(‘cheerio‘);
var gbk= require(‘gbk‘);
gbk.fetch(‘http://www.taobao.com/‘,‘utf-8‘).to(‘string‘,function(err,res,body){
    if(err) throw err;
    var $ = cheerio.load(body);
   console.log($(‘head title‘).text());  
});

  此时输出了页面标题。

爬虫中gbk网页内容的处理

标签:

原文地址:http://www.cnblogs.com/kisslight/p/5006086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!