- 其中express是服務端框架
- request相當於前端的ajax請求
- cheerio相當於jq
開始
首先我們先新建一個 crawler目錄
執行
npm install express -g 命令 和
npm install express-generator -g 命令
接着
cd crawler 進入crawler目錄 執行
npm install request --save-dev 和
npm install cheerio --save-dev
然后在我們的目錄下建立express項目 直接命令行執行 express
OK 我們的項目目錄變成這個樣子:

接下來
我們首先安裝下項目的依賴,執行
npm install 就OK
那這樣我們的前期工作就做好了。
接着
我們打開app.js
我們來修改他。
如下:
1 var express = require('express'); 2 var app = express(); 3 4 app.get('/', function(req, res) { 5 res.send('hello express'); 6 }); 7 8 app.listen(3000, function() { 9 console.log('listening on 3000'); 10 });
終端執行
supervisor app.js
(注:supervisor是nodejs中監控進程用的。比如我們修改了app.js 那么supervisor就會自動去重啟這個文件,不需要我們手動去node app.js,用戶可以通過 npm install supervisor -g 來安裝。這個也是我們在nodejs開發中常用到的一個工具)
OK。
我們打開127.0.0.1:3000
看到頁面上輸出了 hello express。 一切正常
就下來我們看下request。我們去到npm 里面 request的官網
看到關於他的使用,我們把它趴下來:

修改我們的app.js
1 var express = require('express'); 2 var app = express(); 3 var request = require('request'); 4 5 app.get('/', function(req, res) { 6 request('http://www.cnblogs.com/galenyip', function (error, response, body) { 7 if (!error && response.statusCode == 200) { 8 console.log(body);// Show the HTML for the Google homepage. 9 res.send('hello express'); 10 } 11 }); 12 }); 13 14 app.listen(3000, function() { 15 console.log('listening on 3000'); 16 });
地址修改成我的博客地址吧。來爬爬我這個博客
OK,刷新我們的頁面。等一會,會看到終端打印出了html相關信息。
接着,
我們用上 cheerio
在app.js中 我們就入 var cherrio = require('cherrio');
1 var express = require('express'); 2 var app = express(); 3 var request = require('request'); 4 var cheerio = require('cheerio'); 5 6 app.get('/', function(req, res) { 7 request('http://www.cnblogs.com/galenyip', function (error, response, body) { 8 if (!error && response.statusCode == 200) { 9 $ = cheerio.load(body); //拿到body,作為選擇器 10 } 11 }); 12 }); 13 14 app.listen(3000, function() { 15 console.log('listening on 3000'); 16 });
同時,我們可以看到 cheerio.load(body)就是我們拿到的頁面,把它作為總的選擇器。
之后的,我們就可以像操作jq一樣操作這個頁面了。
具體的api可以到官網:
https://www.npmjs.com/package/cheerio
它的api跟jq很像,那這個就不做介紹了
其實,我們的整個爬蟲就差不多了。
剩下的就是看客們根據自己的需要,去抓取頁面的dom,篩選等等等等。。。。
好了。
大體就這么多了。
有不懂的,或者紕漏的,大家可以在評論里面交流拍磚。