/**
* 采集39问答网
*/
var n = require('needle')
var $ = require('jquery')
var iconv = require('iconv').Iconv;
n.get('http://ask.39.net/browse/313-2-1.html',{encoding:'gb2312'},function(error,response,body){
//console.log(response.statusCode)
var buf = new Buffer(body,'binary');
var content = new iconv('gb2312','UTF8').convert(buf).toString()
//采集到的链接
var href = {}
$(content).find('.bt').each(function(index,value){
href[$(value).attr('href')] = $(value).attr('href')
})
console.log(href)
})
经常出现下面的错误。
throw errnoException('EILSEQ', 'Illegal character sequence.');
^
Error: Illegal character sequence.
at errnoException (D:\node.js\node_modules\iconv\lib\iconv.js:137:13)
at convert (D:\node.js\node_modules\iconv\lib\iconv.js:85:17)
at Iconv.convert (D:\node.js\node_modules\iconv\lib\iconv.js:108:12)
at D:\node.js\cj39.js:11:46
at handle_output (D:\node.js\node_modules\needle\lib\needle.js:227:16)
at Object.Needle.response_end (D:\node.js\node_modules\needle\lib\needle.js:242:7)
at IncomingMessage.<anonymous> (D:\node.js\node_modules\needle\lib\needle.js:187:16)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:883:14
at process._tickCallback (node.js:415:13)