nodejs爬蟲系統


 

  • 其中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,篩選等等等等。。。。

 

好了。

大體就這么多了。

有不懂的,或者紕漏的,大家可以在評論里面交流拍磚。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM