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模塊能夠去實現。