nodejs是js语言,实现一个爬出很是的方便。html
1. 使用nodejs的request模块,获取目标页面的html代码;
https://github.com/request/requestnode
2. 使用cheerio模块对html代码作处理(cheerio相似jQuery的语法,因此好用又方便)
https://github.com/cheeriojs/cheeriogit
下面咱们借助exprerss来作一个简单的nodejs爬虫系统。
http://www.expressjs.com.cn/github
$ npm init
初始化一个项目ajax
npm install express request cheerio --save
安装所需的模块
express用于搭建node服务
request相似于ajax的方式获取一个url里的html代码
cheerio相似于jQuery那样对所获取的html代码进行处理express
var express = require('express'); var app = express(); var request = require('request'); var cheerio = require('cheerio'); app.get('/', function(req, res) { request('http://www.jd.com', function(error, response, body) { if (!error && response.statusCode == 200) { $ = cheerio.load(body); res.json({ cat: $('.cate_menu_item').length }); } }) }); var server = app.listen(3000, function() { console.log('listening at 3000'); });
项目结构:npm
这里,咱们以京东网站为例子:json
统计边栏的类目数量,能够看到$('.cate_menu_item') 的用法彻底就像是jQuery的语法,更多例子能够在它的官网查看。app
运行(咱们能够全局安装一个node-dev模块来对咱们的nodejs程序监听热刷新)网站
node-dev app
而后访问http://localhost:3000
返回了 {cat:15}
基础部分就是这样,能够借助这几个模块很方便地开发爬虫系统。
另外好比天天几点去爬,获取失败时的处理,也都有相应的node模块能够去实现。