最近從新玩起了node,便總結下基本的東西,在本文中經過node的superagent與cheerio來抓取分析網頁的數據。css
superagent 抓取網頁html
cheerio 分析網頁node
Node(個人6.0)jquery
三個依賴, express(4X),superagent 和 cheerio。git
superagent(http://visionmedia.github.io/superagent/ ) 是個 http 方面的庫,能夠發起 get 或 post 請求。github
cheerio(https://github.com/cheeriojs/cheerio )爲服務器特別定製的,快速、靈活、實施的jQuery. 用來從網頁中以 css selector 取數據,使用方式跟 jquery 同樣。express
那麼我將抓取本身博客的數據。(有興趣的朋友能夠錦上添花一下,用正則篩選閱讀數很多於400的文章.)服務器
1 var express = require('express'); 2 var superagent = require('superagent'); 3 var cheerio = require('cheerio'); 4 5 var app = express(); 6 app.get('/', function (req, res, next) { 7 superagent.get('http://www.cnblogs.com/LIUYANZUO') 8 .end(function (err, sres) { 9 if (err) { 10 return next(err); 11 } 12 // sres.text 裏面存儲着網頁的 html 內容,將它傳給 cheerio.load 以後 13 // 就能夠獲得一個實現了 jquery 接口的變量,咱們習慣性地將它命名爲 `$` 14 // 剩下就都是 jquery 的內容了 15 var $ = cheerio.load(sres.text); 16 var items = []; 17 $('.day .postTitle2').each(function (index, element) { 18 var $element = $(element); 19 items.push({ 20 標題: $element.text(), 21 網址: $element.attr('href') 22 }); 23 }); 24 res.send(items); 25 }); 26 }); 27 28 app.listen(4000, function () { 29 console.log('app is listenling at port 4000'); 30 });
在命令行運行,獲得截圖併發
固然這是最簡單的,下一篇我想介紹下node的異步併發。app