最近学习《了不起的NodeJS》,里面有一个爬取twitter数据的例子。由于现在twitter爬json数据好像需要认证,不知道怎么用,于是把代码修改成了下面的样子,但是运行起来都会提示,不太明白是怎么回事。先谢谢大家(我开了VPN,是已经翻墙了的)
events.js:141
throw er; // Unhandled 'error' event
^
Error: connect ETIMEDOUT 104.244.42.65:80
at Object.exports._errnoException (util.js:907:11)
at exports._exceptionWithHostPort (util.js:930:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1077:14)
代码如下:
var qs = require('querystring'),
https = require('https');
//node tweets.js haha => process.argv = ['node','tweets.js','haha']
var search = process.argv.slice(2).join(' ').trim()
if(!search.length){
return console.log('\n Usage:node tweets <search term>\n')//使用return 避免执行后面的代码
}
var option = {
host:"twitter.com",
path:'/search?'+qs.stringify({q:search}),
method:"GET"
}
https.request(option,function(res){
var body =''
res.setEncoding('utf8')
console.log('statusCode: ', res.statusCode);
console.log('headers: ', res.headers);
res.on('data',function (chunk) {
body+=chunk
})
res.on('end',function () {
// var obj = JSON.parse(body)
console.log(body);
})
}).end()