码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-02-01 12:04:45      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

没有那么难的,嘿嘿,说起来呢其实挺简单的,或者不能叫爬虫,只需要将自己的数据加载到程序里再进行解析就可以了,如果说你的Qzone是向所有人开放的,那么就有一个JSONP的接口,这么说来就简单了,也就不用我们再利用phantomjs,缓慢的爬了。其实程序还没有做的太过完美,只是简单地可以打印出来说说的内容,明天再做一下,把说说存到数据库里,嘿嘿。
做这个呢,需要用到一个开源库,nodegrass,这个库呢也并不是必须的,它是对nodejs里的http.request的封装。
其实基本原型就在这里了,所需要的已经在代码里了。当然了里边的那个链接是我自己的JSONP的接口,如果你懂的话,你会知道怎么改成你的JSONP接口,但是需要说的是必须空间对所有人开放。

 1 var nodegrass = require(‘nodegrass‘);
 2 var sqlite3 = require(‘sqlite3‘).verbose();
 3 var db = new sqlite3.Database(‘blog.db‘);
 4 var tmp = 0;
 5 function nodepa(tmp) {
 6     if (tmp == 10) tmp--;
 7     nodegrass.get("http://taotao.qq.com/cgi-bin/emotion_cgi_homepage_msg?owneruin=1187772742&start=" + tmp + "&num=10&format=jsonp", function(data, status, headers) {
 8         var json = JSON.parse(data.slice(10, -2));
 9         for (var s in json[‘result‘][‘posts‘]) {
10             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() {
11                 if (this.changes == undefined || this.changes == null)console.log("err");
12             })
13             console.log(json[‘result‘][‘posts‘][s][‘content‘]);
14             console.log(json[‘result‘][‘posts‘][s][‘createTime2‘]);
15             console.log(Number(s) + tmp);
16         }
17         if (tmp < 2640) nodepa(tmp + 10);
18         else return;
19     }, ‘utf-8‘).on(‘error‘, function(e) {
20         console.log("Got error: " + e.message);
21     });
22 }
23 nodepa(tmp);

 

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

标签:

原文地址:http://www.cnblogs.com/tosone/p/4265319.html

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