一、需要的模块
我们用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);
效果如下
以上只是一个简单的小例子