NodeJs简单七行爬虫--爬取自己Qzone的说说并存入数据库

没有那么难的,嘿嘿,说起来呢其实挺简单的,只需要将自己的数据加载到程序里再进行解析就可以了,如果说你的Qzone是向所有人开放的,那么就有一个JSONP的接口,这么说来就简单了,也就不用我们再利用phantomjs,缓慢的爬了。其实程序还没有做的太过完美,只是简单地可以打印出来说说的内容,明天再做一下,把说说存到数据库里,嘿嘿。
做这个呢,需要用到一个开源库,nodegrass,是对nodejs里的http.request的封装。
先看这个代码吧,明天再完善,其实基本原型就在这里了,所需要的已经在代码里了。当然了里边的那个链接是我自己的JSONP的接口,如果你懂的话,你会知道怎么改成你的JSONP接口,但是需要说的是必须空间对所有人开放。
var nodegrass = require('nodegrass');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('blog.db');
var tmp = 0;
function nodepa(tmp) {
	if (tmp == 10) tmp--;
	nodegrass.get("http://taotao.qq.com/cgi-bin/emotion_cgi_homepage_msg?owneruin=1187772742&start=" + tmp + "&num=10&format=jsonp", function(data, status, headers) {
		var json = JSON.parse(data.slice(10, -2));
		for (var s in json['result']['posts']) {
			db.run("insert into qzone values('" + (Number(s) + tmp).toString() + "','" + json['result']['posts'][s]['content'].toString() + "','" + json['result']['posts'][s]['create_time'].toString() + "','" + json['result']['posts'][s]['createTime2'].toString() + "')", function() {
				if (this.changes == undefined || this.changes == null)console.log("err");
			})
			console.log(json['result']['posts'][s]['content']);
			console.log(json['result']['posts'][s]['createTime2']);
			console.log(Number(s) + tmp);
		}
		if (tmp < 2640) nodepa(tmp + 10);
		else return;
	}, 'utf-8').on('error', function(e) {
		console.log("Got error: " + e.message);
	});
}
nodepa(tmp);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值