nodejs是js語言,實現一個爬出非常的方便。
步驟
1. 使用nodejs的request模塊,獲取目標頁面的html代碼;
https://github.com/request/request
2. 使用cheerio模塊對html代碼做處理(cheerio類似jQuery的語法,所以好用又方便)
https://github.com/cheeriojs/cheerio
下面我們借助exprerss來做一個簡單的nodejs爬蟲系統。
http://www.expressjs.com.cn/
具體實現
1. 安裝依賴模塊
$ npm init
初始化一個項目
npm install express request cheerio --save
安裝所需的模塊
express用於搭建node服務
request類似於ajax的方式獲取一個url里的html代碼
cheerio類似於jQuery那樣對所獲取的html代碼進行處理
2. 根目錄新建一個app.js
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'); });
項目結構:

這里,我們以京東網站為例子:

統計邊欄的類目數量,可以看到$('.cate_menu_item') 的用法完全就像是jQuery的語法,更多例子可以在它的官網查看。
查看結果
運行(我們可以全局安裝一個node-dev模塊來對我們的nodejs程序監聽熱刷新)
node-dev app
然后訪問http://localhost:3000
返回了 {cat:15}
基礎部分就是這樣,可以借助這幾個模塊很方便地開發爬蟲系統。
另外比如每天幾點去爬,獲取失敗時的處理,也都有相應的node模塊可以去實現。
