用node 开发简易爬虫

一、需要的模块

我们用node开发爬虫,使用express、request、cheerio这些成熟的框架和模块,快速把结构搭建起来

二、安装模块

下面我们正式开始安装模块,这里我们不介绍怎么安装express

1、用express创建spider目录

express spider

2、模块初始化

npm install

3、安装需要模块request,cheerio

npm install request --save-dev cheerio --save-dev

4、全局安装supervisor(如果已经安装supervisor 的可以跳过此步骤)

sudo npm install -g supervisor  

5、改写app.js最基本的语句即可

var express = require('express');
var app = express();
app.get('/', function (req, res) {
  res.send('hello world')
}); 
app.listen(3000); 

6、执行进程监听

supervisor start app.js

这个时候页面能正常访问了

7、我们选一个网易时尚页面去爬http://fashion.sina.com.cn/

var express = require('express');
var app = express();
var request = require('request');
var cheerio = require('cheerio');

app.get('/', function (req, res) {
    request('http://fashion.sina.com.cn/', function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
            res.send('hello world')
        }
});
 app.listen(3000);

 

这个时候我们就能把这个网页的页面都打印出来

8、选热点新闻把内容爬下来,我们可以利用cheerio来获取节点

var express = require('express');
var app = express();
var request = require('request');
var cheerio = require('cheerio');

app.get('/', function (req, res) {
  
  request('http://fashion.sina.com.cn/', function (error, response, body) {
    if (!error && response.statusCode == 200) {
      $ = cheerio.load(body); //当前$是一个拿到前端选择器
      var arr = [];
      for(var i = 0;i<$('.blk00_c').length;i++){
        arr.push({
          img:$($('.blk00_c img')[i]).attr('src'),
          tag:$($('.blk00_c h4 a')[i]).text(),
          title:$($('.blk00_c h5 a')[i]).text(),
          content:$($('.blk00_c p')[i]).text(),
        });
      }
      res.json({
        hots:arr
      });
       // Show the HTML for the Google homepage. 
    }
  });
  
});
 app.listen(3000);

 

效果如下

以上只是一个简单的小例子

 

posted @ 2016-01-12 15:15  tongyq  阅读(190)  评论(1编辑  收藏  举报